一、今日学习的文章链接和视频链接题目链接https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/视频讲解https://www.bilibili.com/video/BV12a411P7mw二、自己看到题目的第一想法看到题目要反复删除相邻且相同的字母直到不能删为止第一反应就是用栈因为删除相邻重复项完美匹配栈“先进后出、检查栈顶”的特性。思路遍历字符串当前字符和栈顶相同就弹出删除不同就入栈最后栈里就是答案。三、自己实现过程中遇到哪些困难1. 栈为空时访问 top() 崩溃一开始没判断栈空直接取栈顶比较程序直接报错。2. 忘记最后要把栈反转/拼接成字符串栈是倒序的最后要遍历栈输出字符串一开始直接输出乱了。3. 误以为只删一次重复题目要求反复删除直到不能删栈正好能处理这种连锁删除。四、今日收获心得彻底掌握了删除相邻重复项的栈解法时间 O(n)空间 O(n)最简洁最优核心思想- 栈顶 当前字符 → 消除pop- 栈顶 ! 当前字符 → 保留push#include stack using namespace std; class Solution { public: string removeDuplicates(string s) { stackchar st; for (char c : s) { // 栈不为空 且 栈顶 当前字符 → 删除 if (!st.empty() st.top() c) { st.pop(); } else { st.push(c); } } // 把栈转为字符串 string res ; while (!st.empty()) { res st.top() res; st.pop(); } return res; } };