https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

在 S 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

示例:

输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

提示:

1 <= S.length <= 20000
S 仅由小写英文字母组成。

解题报告:

根据不同操作序列得到结果的等价性,我们可以找到一对就操作一次,这样可以保证所有能消除的也都会被消除。

AC代码:

class Solution {
public:string removeDuplicates(string S) {string ret = "";stack<char> sk;for(int i = 0; i<S.length(); i++) {if(sk.size() && S[i] == sk.top()) sk.pop();else sk.push(S[i]);}while(sk.size()) {ret+=sk.top();sk.pop();}reverse(ret.begin(), ret.end());return ret;}
};

【LeetCode - 1047】删除字符串中的所有相邻重复项(栈)相关推荐

  1. leetcode 1047. 删除字符串中的所有相邻重复项(栈)

    给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们. 在 S 上反复执行重复项删除操作,直到无法继续删除. 在完成所有重复项删除操作后返回最终的字符串.答案保证唯一. ...

  2. 【Leetcode栈与队列】1047.删除字符串中的所有相邻重复项 6120.数组能形成多少数对(一些题外话和做题经验!!看作对对碰游戏!!)

    文章目录 题外话 1.游戏开发可能使用栈结构 2.编程语言的一些功能实现也会使用栈结构 Leetcode 1047.删除字符串中的所有相邻重复项 1.问题描述 2.解决方案 Leetcode 6120 ...

  3. 算法训练Day11|LeetCode 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

    题目链接:20. 有效的括号 第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false 第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字 ...

  4. 算法训练Day11 | LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)

    目录 LeetCode232.用栈实现队列 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode225. 用队列实现栈 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 ...

  5. 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)

    代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...

  6. Suzy找到实习了吗Day 11 |栈与队列中途 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

    Day 11 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值 20. 有效的括号 注意栈不是一个数据结构,需要自己用list实现栈的逻辑 class Solu ...

  7. 算法训练第十一天|力扣20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

    20. 有效的括号 题目链接:有效的括号 参考:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B ...

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

    题目链接: 删除字符串中的所有相邻重复项 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们 ...

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

    删除字符串中的所有相邻重复项 题目 分析 我的解答 题目 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们. 在 S 上反复执行重复项 ...

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

    给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们. 在 S 上反复执行重复项删除操作,直到无法继续删除. 在完成所有重复项删除操作后返回最终的字符串.答案保证唯一. ...

最新文章

  1. DotNetCore跨平台~EFCore数据上下文的创建方式
  2. 以太网交换机与路由—Vecloud微云
  3. [译]在CUDA C/C++中如何衡量代码性能
  4. 每天一道LeetCode-----生成由[1 : n]这n个数组成的所有二叉搜索树
  5. PHP权重算法-用于游戏根据权限来随机物品
  6. 什么是边缘计算边缘计算_什么是边缘计算?
  7. Oracle主要概念汇总
  8. minecraft服务器搭建教程_[学生福利]使用WINDOWS SERVER2012R2服务器搭建网站教程
  9. android获取键值对,Android应用开发android中的键值对实例讲解
  10. 快递跟踪地图_基于百度地图的物流跟踪系统设计
  11. iOS Framework Shell打包
  12. oracle索引如何提高效率,ORACLE用索引提高效率
  13. RxJava模式与原理-----标准观察者与RxJava观察者
  14. Linear Algebra with Sub-linear Zero-Knowledge Arguments学习笔记
  15. 部署 PXE 远程安装与无人值守安装服务
  16. Qemu gdb 调试 Liteos realview-pbx-a9 工程
  17. 《数字图像处理》读书笔记2:数字图像处理基础
  18. 《RA-UNet: A hybrid deep attention-aware network to extract liver and tumor in CT scans》
  19. Keil uVision4的基本使用
  20. 计算机专业英语读写比赛,四年级英语读写大赛lpar;初赛rpar;

热门文章

  1. Android初级开发第七讲--特效和数据传递处理
  2. 开源CRM Hipergate
  3. normalize函数_提取棋盘格角点函数解析
  4. python输出运行时间表_Python编程第十二课 了解程序运行的时间
  5. 什么电脑的牌子好用_扬州诚招电动牙刷代理有什么牌子比较好用
  6. windows 7搭建流媒体服务
  7. php正则表达式函数案例,PHP正则表达式函数preg_replace用法实例分析
  8. notes邮件正文显示不全_python实现一次性批量发邮件
  9. 哲学家就餐问题python_Python实现哲学家就餐问题实例代码
  10. 求合体电脑版_网红界宋祖儿找年轻版言承旭当男友,一张合照收割大量cp粉?!...