栈
class Solution {
public:
string removeDuplicates(string s) {
stack<char> ans;
ans.push(s[0]);
for(int i=1;i<s.size();i++){
if(!ans.empty()){
if(s[i]==ans.top()){
ans.pop();
}
else{
ans.push(s[i]);
}
}
else{
ans.push(s[i]);
}
}
std::string result;
while (!ans.empty()) {
result = ans.top() + result; // 栈是后进先出,所以需要逆序
ans.pop();
}
return result;
}
};
class Solution {
public:
string removeDuplicates(string s) {
string ans;
ans.push_back(s[0]);
for(int i=1;i<s.size();i++){
if(!ans.empty()){
if(s[i]==ans.back()){
ans.pop_back();
}
else{
ans.push_back(s[i]);
}
}
else{
ans.push_back(s[i]);
}
}
return ans;
}
};