一、采用栈
class Solution {
public:
string removeDuplicates(string s) {
stack<char> st;
int count = 0;
while(count < s.length()){
if(st.empty()) st.push(s[count]);
else{
if(s[count] == st.top()){
st.pop();
}else{
st.push(s[count]);
}
}
count++;
}
string result = "";
while(!st.empty()){
result += st.top();
st.pop();
}
reverse(result.begin(), result.end());
return result;
}
};
二、字符串当做栈
class Solution {
public:
string removeDuplicates(string s) {
string result;
for(char c : s){
if(result.length() == 0 || result.back() != c){
result.push_back(c);
}else{
result.pop_back();
}
}
return result;
}
};