2025/3/4 【栈与队列】LeetCode1047. 删除字符串中的所有相邻重复项 【√】
1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)
这题做的没有乐趣
1.使用栈
class Solution: def removeDuplicates(self, s: str) -> str: stack = [] for char in s: if stack and stack[-1] == char: stack.pop() else: stack.append(char) return ''.join(stack)
2.用双指针模拟栈。
如果不让用栈可以作为备选方法。
这个方法不错。
class Solution: def removeDuplicates(self, s: str) -> str: res = list(s) n = len(s) slow = fast = 0 while fast < n: # 如果一样直接换,不一样会把后面的填在slow的位置 res[slow] = res[fast] # 如果发现和前一个一样,就退一格指针 if slow > 0 and res[slow] == res[slow-1]: slow -= 1 else: slow += 1 fast += 1 return ''.join(res[:slow])
分类:
每日刷题记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架