Skip to main content
 首页 » 编程设计

python之python中的算法字符串

2025年05月04日23mayingbao

我有一个字符串 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”不会从字符串中删除。调整您的代码以删除所有 连续重复的字符,您的问题将得到解决。