当前位置: 首页 > news >正文

1047. 删除字符串中的所有相邻重复项

原题链接:1047. 删除字符串中的所有相邻重复项

思路:
只需要删除相邻又相同的字符就行了
那么只需要运用一个栈来存储当前需要进行匹配的元素
遍历字符串的字符
字符和栈顶的元素不相等时,就代表不是相邻且相同的 需要删除字符
那么将这个字符压入栈中进行存储
如果当前遍历的字符和栈顶元素相等时,就代表是相邻且相同的 需要删除字符
那么将这个栈顶弹出,就代表删除了相邻的的字符重复项

全代码:

class Solution {
public:
    string removeDuplicates(string s) {
        stack<char> stack_op;
        for(int i = 0; i < s.size(); i++)
        {//遍历字符串
            if(stack_op.empty() || stack_op.top() != s[i])
            {//如果栈为空,或者栈顶元素不等于s[i],则代表不是重复匹配项。将s[i]压入栈
                stack_op.push(s[i]);
            }
            else
            {//栈不为空的情况下,栈顶元素 == s[i],代表为需要删除的重复项,此时栈顶弹出
                stack_op.pop();
            }
        }

        s = "";//重置字符串
        while(!stack_op.empty())
        {//将栈中的元素逐个压入字符串内,但是要注意,压入后字符串和正确答案互为倒序
            s += stack_op.top();
            stack_op.pop();
        }
        //反转下字符串,则为正确答案
        reverse(s.begin(),s.end());
        return s;
    }
};

相关文章:

  • 线性代数 第二章 矩阵
  • MyBatis 动态 SQL
  • 数据结构——基于顺序表实现通讯录
  • Kafka基本原理、生产问题总结及性能优化实践 | 京东云技术团队
  • YOLO算法改进6【中阶改进篇】:depthwise separable convolution轻量化C3
  • JAVA整理学习实例(一)面向对象
  • centos 搭建 zookeeper 高可用集群
  • AI:48-基于卷积神经网络的气象图像识别
  • Web测试是什么,有何特点?
  • SAP ABAP基础语法-TCODE学习(六)
  • 操作系统的线程模型
  • 用前端框架Bootstrap和Django实现用户注册页面
  • k8s 资源预留
  • Python+pytest+requests 自动化测试框架
  • SQL Server2000mdf升级SQL Server2005数据库还原
  • 亲测 IDEA Pycharm 全家桶 自动重置免费30天
  • 【Redis】Java连接Redis及Java操作Redis常用数据类型
  • memtest86 prosite v10.6
  • 电脑如何录制小视频
  • AUTOSAR汽车电子嵌入式编程精讲300篇-纯电动汽车车载网络安全性入侵检测(续)
  • 董明珠孟羽童官宣,5月23日将合体直播
  • 王楚钦球拍受损,乒乓球裁判揭秘大赛球拍检测
  • 多家国有大行存款利率即将迎来新一轮下调
  • 李公明 | 一周画记:德里达哲学还是接地气的
  • IPO周报|本周2只新股申购,比亚迪、上汽“小伙伴”来了
  • 浙江推动人工智能终端消费:家居机器人纳入以旧换新补贴范围