【发布时间】:2018-04-08 04:26:46
【问题描述】:
import sys
def super_reduced_string(s):
i=len(s)-1
while(i>0):
if(s[i]==s[i-1]):
s=s.replace(s[i],'')
s=s.replace(s[i-1],'')
i=len(s)-1
else:
i-=1
return (s)
例如,如果我取一个字符串"aaabccddd",那么i 的值一开始就是8。我的if 语句为真,因此字符串变为'aaabccdd'。
然后我想删除s[i-1] (s[7]) 然后你的字符串应该变成"aaabccd"
为什么会引发IndexError 异常,说s[i-1] 超出范围?
【问题讨论】:
-
s.replace(s[i],'')并不意味着“替换ith 字符”。如果ith 字符为'd',则表示“替换所有'd's”。 -
提示:你想做的不是
replace。
标签: python python-3.x