用栈的思想可以轻松解决,可以用vector来模拟栈存放到string时方便些。 遍历S字符串: 若栈空则添加 不空: 若栈顶元素与当前字符相同则栈顶弹出 不同则添加
最后把栈中元素存放到结果字符串中
class Solution {
public:
string removeDuplicates(string S) {
vector<char> st;
string str;
for (int i = 0; i < S.size(); i++) {
if (!st.empty()) {
if (st.back() == S[i]) st.pop_back();
else st.push_back(S[i]);
}
else {
st.push_back(S[i]);
}
}
for (int i = 0; i < st.size(); i++) {
str += st[i];
}
return str;
}
};