删除字符串中的所有相邻重复项
2015 年 8 月 12 日
class Solution: def removeDuplicates(self, s: str, k: int) -> str: # 栈顶的元素为[x, y]的列表, 其中: # x为字符串s的迭代字符 # y为字符x连续出现的次数 stack = [] for i in s: # 如果栈为空,则字符i首次出现,[i,1]入栈 if not stack: stack.append([i, 1]) else: # 如果i恰好为栈顶的字符,则出现次数加一,否则[i,1]入栈 if i == stack[-1][0]: stack[-1][1] += 1 # 判断字符i的出现次数,如果出现k次,则直接出栈删除 if stack[-1][1] >= k: stack.pop() else: stack.append([i, 1]) # 连接栈中的元素,并返回结果 res = "".join([i[0]*i[1] for i in stack])return res