提出 #71259718
ソースコード 拡げる
"""
<方針>
- 線形時間程度で収めることを考える。
- 連続する数字をブロックとして捉えて一旦まとめてみる。`O(N)`
- `1122` が `12` を包含するように、隣同士のブロックで作れる最長の長さが個数になりそう。
"""
# 入力
S = input()
# 番兵
S += "A"
# ブロックの文字を記録
chars = []
# ブロックの個数を記録
cnts = []
# 現在の文字
char = S[0]
# 現在連続している個数
cnt = 1
# 2個目以降をみる
for s in S[1:]:
# 文字が一致すれば
if(s == char):
# 個数を増やす
cnt += 1
# 一致しなければ、
else:
# 現在の文字と個数をブロック単位として登録する
chars.append(char)
cnts.append(cnt)
# 新しいのに変える
char = s
cnt = 1
# 個数計測
ans = 0
# 隣り合うところだけ見る
for i in range(len(chars)-1):
# 左の数字に1足したら右の数字になるとき、
if(int(chars[i])+1 == int(chars[i+1])):
# 作れる最大の長さが個数
ans += min(cnts[i], cnts[i+1])
# 出力
print(ans)
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - 1122 Substring 2 |
| ユーザ | mattsunkun |
| 言語 | Python (PyPy 3.11-v7.3.20) |
| 得点 | 300 |
| コード長 | 1163 Byte |
| 結果 | AC |
| 実行時間 | 177 ms |
| メモリ | 237596 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 53 ms | 79956 KiB |
| 00_sample_01.txt | AC | 52 ms | 80188 KiB |
| 00_sample_02.txt | AC | 52 ms | 79888 KiB |
| 00_sample_03.txt | AC | 52 ms | 79888 KiB |
| 01_random_00.txt | AC | 53 ms | 79916 KiB |
| 01_random_01.txt | AC | 73 ms | 111784 KiB |
| 01_random_02.txt | AC | 75 ms | 111600 KiB |
| 01_random_03.txt | AC | 78 ms | 111512 KiB |
| 01_random_04.txt | AC | 78 ms | 111964 KiB |
| 01_random_05.txt | AC | 77 ms | 111908 KiB |
| 01_random_06.txt | AC | 158 ms | 208588 KiB |
| 01_random_07.txt | AC | 173 ms | 227512 KiB |
| 01_random_08.txt | AC | 102 ms | 151248 KiB |
| 01_random_09.txt | AC | 148 ms | 182348 KiB |
| 01_random_10.txt | AC | 138 ms | 173580 KiB |
| 01_random_11.txt | AC | 140 ms | 175644 KiB |
| 01_random_12.txt | AC | 139 ms | 173088 KiB |
| 01_random_13.txt | AC | 93 ms | 123016 KiB |
| 01_random_14.txt | AC | 98 ms | 123084 KiB |
| 01_random_15.txt | AC | 172 ms | 224284 KiB |
| 01_random_16.txt | AC | 172 ms | 227612 KiB |
| 01_random_17.txt | AC | 131 ms | 173460 KiB |
| 01_random_18.txt | AC | 177 ms | 237596 KiB |