文字列から隣り合う同じ文字を削除したい
例えば、"aabcacc"という文字列があった場合
「aa」と「cc」を削除して 「bca」となるようにしたい。
"abbac"であれば、「bb」を削除したら「aac」になり、「aa」を削除して最終的に「c」になる
今回はこの"abbac"を想定してコードを書いています。
python3
1s="abbac" 2 3a=[] 4b=[] 5for i in range(len(s)): 6 a.append(s[i]) 7 8count = 0 9while True: 10 for j in range(len(a)-1): 11 if a[j] == a[j+1]: 12 b.append(a[j]) 13 b.append(a[j+1]) 14 count += 1 15 if count == 0: 16 break 17 else: 18 count = 0 19 20set_ab = set(a) - set(b) 21list_ab = list(set_ab) 22print(list_ab) 23
発生したエラー
- ループから抜け出せない
なぜこのコードでは抜け出せられないのでしょうか・・・?
- 文字列の文字が操作できないらしい?(あまり詳しくないので、ネット情報です)
文字列の文字の操作がreplace(s[0], "")のようにできないようだったので、
遠回りかもしれませんが、一度一文字ずつリストに格納して、delで削除することにしました。
###質問したいこと
-
本当はリストを使うなんて遠回りしない方が良いのですが、リストを使わない場合、文字列の操作ができないという問題をどのように解決するのでしょうか?
-
なぜこのコードのbreakでループを終わらせられないのでしょうか?
*なにかアドバイスがあればどんなことでもいいのでお願いします。
回答6件
あなたの回答
tips
プレビュー