-
发表于 2024.07.07
-
从左往右遍历字符串,使用一个栈来维护已遍历字符的连续计数,如果当前字符与栈顶字符相同,则将计数加一,否则将当前字符入栈,并将栈顶计数计为
1
。如果栈顶字符计数超过了k
,则需要出栈。最后拼接栈中尚存的字符即可。class Solution: def removeDuplicates(self, s: str, k: int) -> str: stack = [] for ch in s: if stack and stack[-1][0] == ch: stack[-1][1] += 1 else: stack.append([ch, 1]) if stack[-1][1] == k: stack.pop() # 组装结果 ans_list = [] for ch, cnt in stack: ans_list.append(ch * cnt) return ''.join(ans_list)
- LC 题目链接
-