从python中的字符串中删除连续的重复字符

嘿,我试图编写一个程序,该程序将从字符串中删除连续的重复字符.

例如:
与字符串&GT aabbccde
第一次迭代:bbccde
第二次迭代:ccde
第三次迭代:de

而德就是答案.

以下是我编写的程序.

a = "aabbcs"
def remove_dups(st,ind):
    print st, ind
    st = st.replace(st[ind], "")
    print st, "in dups"
    find_dups(st)

def find_dups(text):
    s=text
    print s, "in find"
    ln = len(s)
    print ln
    fg = 0
    ind = 0
    if ln==1:
        print s, 'len'
        return s
    for i in range(0,ln-1):
        if(s[i]==s[i+1]):
            ind = i
            remove_dups(s,ind)
    print s, 'check'        
    return s

ans = find_dups(a)
print 'answer', ans

以下是我得到的输出

寻找aabbcs
6
aabbcs 0
英国广播公司
英国广播公司在找到
4
英国广播公司0
伪造的cs
查找中的cs
2
CS检查
英国广播公司检查
aabbcs 2
AAC APS
找到AAC
4
aacs 0
伪造的cs
查找中的cs
2
CS检查
AAC检查
aabbcs检查
回答aabbcs

上面的代码中有cs,但答案仍然是原始字符串,我可以理解这是由于递归,但无法理解如何解决该问题.一点帮助将不胜感激.谢谢!

解决方法:

您的行remove_dups(s,ind)是问题所在.它不对返回的值做任何事情.如果您通读代码,则在顶层函数调用中,将s = text分配在顶部,然后在底部返回s,而无需修改s的值.提示是,在您打印正确答案后,您将最后打印原始文本.
尝试s = remove_dups(s,ind)

上一篇:LeetCode不定时刷题——Remove Duplicates from Sorted List


下一篇:80.Remove Duplicates from Sorted Array II