LeetCode 1047
本文最后更新于:2021年9月8日 晚上
LeetCode 1047
概述
- https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/
- 从string中删除所有相邻且相同的字符,删除后继续重复操作
思路
-
想当于两个元素的匹配问题,考虑用栈
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class Solution {
public:
string removeDuplicates(string s) {
stack<char> sk;
for(int i=0;s[i];i++){
if(!sk.empty()&&sk.top()==s[i]) sk.pop(); //这里要加非空判断,因为后续也可能出现栈为空的情况
else sk.push(s[i]);
}
string p="";
while(!sk.empty()){
p+=sk.top();
sk.pop();
}
reverse(p.begin(),p.end());
return p;
}
};
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!