与えられた文字列を "aabcc"としましょう。この入力が関数を通して実行された後、aaとccが削除されるので、 "b"に減らす必要があります。指定された文字列が "aaabbccc"の場合、これは "ac"になります。Python 2 - 同じ文字を削除して文字列を減らそうとしています
は、だからここに私のコード
def super_reduced_string(s):
for i in range(len(s)-1):
if s[i] == s[i+1]:
s = s.replace(s[i],'')
return s
私は文字列s各反復s = s.replace(s[i],'')
を更新しようとするたびにそれは範囲エラー外の文字列インデックスを投げ続けています。これは、最初にプレースホルダにsを代入したときにも発生します。
エラー
Traceback (most recent call last):
File "solution.py", line 12, in <module>
result = super_reduced_string(s)
File "solution.py", line 7, in super_reduced_string
if s[i] == s[i+1]:
IndexError: string index out of range
は説明と修正をお願い申し上げます。
乾杯
同時に変更している文字列を反復しています。 'for i in range'はi = 5まで実行されますが、置換えが完了すると文字列は短くなります。 – fredtantini