美文网首页
leetcode 1047. 删除字符串中的所有相邻重复项

leetcode 1047. 删除字符串中的所有相邻重复项

作者: fanchuang | 来源:发表于2020-03-08 02:17 被阅读0次

    很艰难地通过了,执行效率也差

    # 评论区有用栈的,很恰当,很6。
    class Solution:
        def removeDuplicates(self, S: str) -> str:
            # 最终我想到一个很拙劣的方法。。。辣眼睛。。。
            # 因为连续的pop(i)导致不停地报错。IndexError: list index out of range
    
            b = list(S) 
            cop = b.copy()
            while True:
                for i in range(len(b)-1):
                    if b[i] == b[i+1]:
                        b[i] = "?"
                        b[i+1] = "?"
                # print("经过一轮操作之后 b: ", b)
                # 说明经过上面的循环,原字符串的长度(自身)没变化,直接return 
                if b == cop:    
                    return ''.join(b) 
                else:
                    b = list("".join(b).replace("??", ""))
                    cop = b.copy()
              
    

    相关文章

      网友评论

          本文标题:leetcode 1047. 删除字符串中的所有相邻重复项

          本文链接:https://www.haomeiwen.com/subject/kwwldhtx.html