python - 函数删除超过 2 个连续重复的字符串不起作用

标签 python python-3.x string

这是我的功能:

def remove_more_than_two_reps(text):
    result = list(text)
    for idx,char in enumerate(text):       
        if(result[:idx].count(char) > 2):
            result.remove(char) 
    return ''.join(result) 

预期结果:

text = 'teeeexxxxt'
result = remove_more_than_two_reps(text)
>'teexxt'

我的函数只返回原始字符串,有什么问题吗?

最佳答案

尝试使用 appendO(1) 而不是 removeO(n):

def remove_more_than_two_reps(text: str) -> str:
    result = []
    for ch in text:
        if len(result) < 2 or result[-1] != ch or result[-2] != ch:
            result.append(ch)
    return ''.join(result)

text = 'teeeexxxxt'
result = remove_more_than_two_reps(text)
print(result)

输出:

teexxt

关于python - 函数删除超过 2 个连续重复的字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72483991/

相关文章:

javascript - 如何获取CSS网格中的所有元素(包括隐藏元素)

python - Tkinter 几何恢复正常

python - 每次鼠标移到kivy中的小部件上时,如何打印指针的位置?

python - Text vs str,当使用 python 类型提示时

python - django/python : Google doc viewer issue with . docx/.xlsx/.pptx

Python Pandas set_index函数: KeyError: "None of [] are in the columns"

python - 递增的 float 彼此不相等

python - 从 csv 读取时如何检测和删除数据集上方的行?

c++ - basic_string::_M_construct null 在构造字符串的子 vector 后无效

c++ - 连接纯字符和字符串?