gpt4 book ai didi

python - 如何使用python递归删除重复3次或更多次的所有相邻字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:27 24 4
gpt4 key购买 nike

测试用例 输入:abbbaaccada 输出:ccada 输入:bbccdddcb 输出:(空字符串)

str = input("Enter string: ")

def my_string(string):
if not string:
return ""
if len(string) == 1:
return string
if string[0] == string[1] == string[2]:
return my_string(string[3:])
return string[0] + my_string(string[1:])

print (my_string(str))

我是 python 新手。我正在尝试删除字符串中连续出现 3 次或更多次的字符。在此我只能获得 1 次迭代的输出。例如i/p- hhhelllo o/p-eo 但对于 i/p- abbbaaccada o/p 是 aaaccada 但它应该是 ccada.. 请帮助..

我已经这样做了 3 次重复,但是如何将它概括为超过 3 次重复。??

最佳答案

您的问题提供了一个机会来展示 for 循环中的 else 是如何有用的。看一看:

def remover(my_str):
temp = set(my_str)
while True:
for c in temp:
if 3*c in my_str:
my_str = my_str.replace(3*c, '')
break
else:
break
return my_str


test1 = 'abbbaaccada'
print(remover(test1)) # -> ccada

test2 = 'i/p- hhhelllo'
print(remover(test2)) # -> i/p- eo

如果坚持要递归调用,可以修改上面的内容如下:

def remover(my_str):
temp = set(my_str)
new_str = my_str
for c in temp:
if 3*c in new_str:
new_str = new_str.replace(3*c, '')
if my_str == new_str:
return new_str
else:
return remover(new_str)

关于python - 如何使用python递归删除重复3次或更多次的所有相邻字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com