题目来源:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/description/
C++题解:用栈,开心消消乐。
class Solution {
public:
string removeDuplicates(string s) {
stack<char> rec;
int len = s.size();
for(int ii = 0; ii < len; ii++) {
if(!rec.empty()) {
if(s[ii] == rec.top()) rec.pop();
else rec.push(s[ii]);
}
else rec.push(s[ii]);
}
int lenrec = rec.size();
string res="";
for(int jj = lenrec - 1; jj >= 0; jj--) {
res = rec.top() + res;
rec.pop();
}
return res;
}
};
C++题解2:用栈的思想,用字符串实现,代码来源 代码随想录
class Solution {
public:
string removeDuplicates(string S) {
string result;
for(char s : S) {
if(result.empty() || result.back() != s) {
result.push_back(s);
}
else {
result.pop_back();
}
}
return result;
}
};