Leetcode-删除字符串中的所有相邻重复项(简单)

给出由小写字母组成的字符串 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;
    }
};
全部评论

相关推荐

像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务