第十九天 | 1047. 删除字符串中的所有相邻重复项
题目链接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/
视频讲解:https://www.bilibili.com/video/BV12a411P7mw
题目描述:
解题思路
核心是用栈模拟整个删除过程:
- 遍历字符串
s中的每个字符; - 如果栈不为空,且栈顶字符和当前字符相同,说明遇到了相邻重复项,直接弹出栈顶字符;
- 如果不相同,就把当前字符压入栈中;
- 遍历结束后,栈里剩下的字符就是删除所有相邻重复项后的结果。
这种方法可以自动处理删除后新产生的相邻重复项,时间复杂度是 O(n),刚好满足题目数据规模要求。
解题代码:
测试案例:
