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

2020-03-08  本文已影响0人  fanchuang

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

# 评论区有用栈的,很恰当,很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()
          
上一篇 下一篇

猜你喜欢

热点阅读