[Codeforces] 1660C. Get an Even Strings [Codeforces Round #780 (Div. 3)]
3431 ワード
📚 質問する
https://codeforces.com/problemset/problem/1660/C
📖 に答える
大会で1時間ほど悩んだが、解けなかった.
これは、文字列を偶数配列の文字列にするために、少なくとも数文字を消去する必要があるという問題です.
6
aabbdabdccc
zyx
aaababbb
aabbcc
oaoaaaoo
bmefbmuyw
最初の症例aabbdabdccc
はaabbddcc
とすることができる.偶数個を連続して生成すればよい.2番目の症例
zyx
はすべて削除すればよい.入力した文字列の前から確認し、配列に文字列が存在しない場合は配列に入れます.配列に文字列がある場合は、その間の値を削除できます.したがって、配列内の他の文字は削除されます.そして並べ替えます.
上記の手順を例として説明します.
例1では、文字列はa a a b d a b d cである.最初の文字列から、1つずつ巡回して解きます.
[a]
[b]
[d]
[a, d]
[a, b, d]
[c]
[c]
これが最後なので、cを取り除くべきです.(合計3個削除)📒 コード#コード#
t = int(input())
for _ in range(t):
string = input()
visited = []
cnt = 0
for i in string:
if i in visited:
cnt += len(visited) - 1
visited = []
else:
visited.append(i)
print(cnt + len(visited))
🔍 結果
Reference
この問題について([Codeforces] 1660C. Get an Even Strings [Codeforces Round #780 (Div. 3)]), 我々は、より多くの情報をここで見つけました https://velog.io/@yunhlim/CODEFORCES-1660C.-Get-an-Even-Strings-Codeforces-Round-780-Div.-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol