https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/description/
题目与栈的机制十分契合
使用栈实现
string removeDuplicates(string s) {
stack<char> stk;
for (char c : s) {
if (!stk.empty() && stk.top() == c) {
stk.pop();
} else {
stk.push(c);
}
}
// 从栈中取出字符串
string ans;
ans.resize(stk.size());
for (int i = stk.size() - 1; i >= 0; --i) {
ans[i] = stk.top();
stk.pop();
}
return ans;
}
使用字符串结构模拟栈进行实现,字符串尾模拟栈顶
string removeDuplicates(string s) {
string ans = "";
for (char c : s) {
if (!ans.empty() && ans.back() == c)
ans.pop_back();
else
ans.push_back(c);
}
return ans;
}