给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
输入:"abbaca"
输出:"ca"
思路:用栈来实现,将字符串中的字符入栈,判断当该字母与栈顶元素相同,则pop栈顶且跳过该字母,否则入栈。
c++中的string也有push_back和pop_back.
class Solution { public: string removeDuplicates(string s) { string stack; for(int i=0;i<s.length();i++){ if(!stack.empty()&&s[i]==stack[stack.size()-1]){ stack.pop_back(); } else stack.push_back(s[i]); } return stack; } };