衡阳网站推广优化公司,做58网站怎么赚钱吗,wdcp wordpress搬家,视频作品投票网站如何做题目#xff1a;给出由小写字母组成的字符串 S#xff0c;重复项删除操作会选择两个相邻且相同的字母#xff0c;并删除它们。
在 S 上反复执行重复项删除操作#xff0c;直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
分析#xff…题目给出由小写字母组成的字符串 S重复项删除操作会选择两个相邻且相同的字母并删除它们。
在 S 上反复执行重复项删除操作直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
分析这一题也相当于是匹配问题因此也是可以用栈来解决的经典题目。首先我们遍历字符串将遍历到的每一个字符和栈顶的元素比较如果相同就将栈顶元素弹出如果栈是空的或者和栈顶元素不同就将该字符放入栈里。最后剩下的栈元素重新放在字符串里由于顺序相反所以还需反转一下。
具体代码
class Solution {
public:string removeDuplicates(string s) {stackchar st;for(int i 0; i s.size(); i) {if(st.empty() || s[i] ! st.top()) {st.push(s[i]);}else{st.pop();}}string result ;while(!st.empty()) {result st.top();st.pop();}reverse(result.begin(), result.end());return result;}
};