转载请声明地址四元君

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

题目难度 Easy

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

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

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

示例:

输入:"abbaca"
输出:"ca"

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

提示:

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

思路

遍历一遍。全部由子串进行拼接,如果中间有两个字符相等,就拼接他们前后的两个子串。注意拼接完成后继续遍历的位置仍然是刚才的位置,要遍历新的字符串是不是有重复的情况。

代码

class Solution {
public:string removeDuplicates(string S) {if(S.size()<=1) return S;int n=S.size();for(int i=0;i<n-1;i++){if(S[i]==S[i+1]){S=S.substr(0,i)+S.substr(i+2,n);n-=2;i-=2;if(i<0) i=-1;}}return S;}
};

5064. 删除字符串中的所有相邻重复项相关推荐

  1. 1209. 删除字符串中的所有相邻重复项 II

    1209. 删除字符串中的所有相邻重复项 II 题目 我的解答 题目 给你一个字符串 s,「k 倍重复项删除操作」将会从 s 中选择 k 个相邻且相等的字母,并删除它们,使被删去的字符串的左侧和右侧连 ...

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

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

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

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

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

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

  5. leetcode:前 K 个高频元素、删除字符串中的所有相邻重复项、有多少小于当前数字的数字、有效的山脉数组、独一无二的出现次数(JavaScript)

    文章目录 347. 前 K 个高频元素 思路 1047. 删除字符串中的所有相邻重复项 思路 1365. 有多少小于当前数字的数字 思路 优化 继续优化 完整代码 941. 有效的山脉数组 思路 12 ...

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

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

  7. 代码随想录第11天 | LeetCode20. 有效的括号、LeetCode1047. 删除字符串中的所有相邻重复项、LeetCode150. 逆波兰表达式求值

    day11 | LeetCode20. 有效的括号.LeetCode1047. 删除字符串中的所有相邻重复项.LeetCode150. 逆波兰表达式求值 文章目录 day11 | LeetCode20 ...

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

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

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

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

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

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

最新文章

  1. hihoCoder-1828 2018亚洲区预选赛北京赛站网络赛 A.Saving Tang Monk II BFS
  2. oracle11g安装过程提示swap size 检查失败问题
  3. php imagettftext 水印 粗体
  4. 63个优秀测试网站地址【个人总结】
  5. 先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)
  6. mysql编辑前200行_巧妙使用SQL Server编辑前200行功能
  7. redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange
  8. java instance变量_java 类方法和实例方法 以及 类变量和实例变量
  9. MySQL主从、主主、半同步节点架构的的原理及实验总结
  10. 开源创新的理念_开源如何解决创新问题
  11. 搜狗推出卫星影像地图 将覆盖全部七个奥运城市
  12. Hinton、LeCun、Bengio等人获得2022 年阿斯图里亚斯公主技术和科学研究奖!
  13. word2vec源码详解
  14. 分析师:芯片短缺至少还将持续一年
  15. 【每日微信新闻早报简报】10月11日 星期五
  16. 小米路由器微信连接到服务器,小米路由器怎么设置微信好友免密码直接链接上网?...
  17. usermod 命令使用说明
  18. java 字符流读取方法_JAVA字符流方式读取文件 问题!
  19. 伪静态以及应用(rewrite)
  20. arthas启动-attach流程

热门文章

  1. 《嵌入式 - 嵌入式大杂烩》详解ROM和RAM
  2. 罗永浩回顾创业历程:转角遇贵人
  3. 计算机中文件夹属性有哪些,文件和文件夹属性
  4. 【JavaWeb】用监听器实现单一登录
  5. Cookie、Session的使用及区别
  6. NoSQL 简介及什么是AICD
  7. 启用或禁用笔记本自带键盘
  8. 模重复平方计算法的C实现
  9. java数据结构和算法——前缀表达式(即波兰表达式)、中缀表达式及后缀表达式(即逆波兰表达式)介绍
  10. 美国LangeEylandt长岛