我有一个字符串 a = "awxxxyyw"。
它应该从字符串中删除所有连续的元素并将最终字符串作为“a”返回给我。
即在1st iteration xxx 似乎是连续的,所以去掉xxx, 然后字符串变成awyyw.
第二次迭代 删除 yy。 字符串变为 aww。
第 3 次迭代 删除 ww。 返回 a
这是我的代码。
我哪里出错了?
def func(string,pointer):
print pointer
for i in range(pointer,len(string)):
flag=0
temp = i
print temp,pointer
try:
while(string[i-1] == string[i]):
print string
i+= 1
flag = 1
except : break
if flag == 0 :
continue
else:
string = string[0:temp] + string[i+1:len(string)]
func(string, temp)
return string
string = "awxxxyyw"
print func(string,1)
请您参考如下方法:
您的代码的问题在于您一次只能删除一个字符,因此重复的序列将减少为单个字符,但该单个字符会留在最后。例如,您的代码从“xxx”到“xx”再到“x”,但由于只剩下一个“x”,因此“x”不会从字符串中删除。调整您的代码以删除所有 连续重复的字符,您的问题将得到解决。
