题目

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

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

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

示例:输入:"abbaca" 输出:"ca"

解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。

之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

提示:

1 <= S.length <= 20000

S 仅由小写英文字母组成。

解题思路分析

1、栈;时间复杂度O(n),空间复杂度O(n)

func removeDuplicates(S string) string {stack := make([]int32, 0)for _, v := range S {stack = append(stack, v)for len(stack) > 1 && stack[len(stack)-1] == stack[len(stack)-2] {stack = stack[:len(stack)-2]}}return string(stack)}

2、遍历;时间复杂度O(n),空间复杂度O(n)

func removeDuplicates(S string) string {arr := []byte(S)for {flag := falsefor i := 0; i < len(arr)-1; i++ {if arr[i] == arr[i+1] {if i+2 != len(arr) {arr = append(arr[:i], arr[i+2:]...)} else {arr = arr[:i]}flag = truebreak}}if flag == false {break}}return string(arr)}

总结

Easy题目,使用栈进行遍历即可,也可以直接遍历判断

go 批量删除文件内字符串_leetcode1047_go_删除字符串中的所有相邻重复项相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. iOS直播(四)对视频进行压缩编码
  2. 为什么mac运行变慢,如何提升mac运行速度
  3. 由“ASP.NET网站限制访问频率”想到的两点问题(转)
  4. 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)
  5. Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!
  6. sgu 207 Robbers
  7. 系统无法在消息文件中为application_iOS 14 Filza 文件消息,M1 能用 win 系统
  8. 现代软件工程系列 学生读后感 梦断代码 SpringGreen
  9. log4j日志 linux配置,Log4j 日志详细用法
  10. 设计模式学习总结(一)——设计原则与UML统一建模语言
  11. java return true false_javascript中return,return true,return false三者的用法及区别
  12. 5.2 LSTM、GRU tensorflow使用
  13. 高通平台文档下载【学习笔记】
  14. Android Verified Boot dm-verity 优化和实战2
  15. BAT解密:互联网技术发展之路(1) - 技术发展的驱动力
  16. c语言生成随机数猜数字大小,产生一个随机数,进行猜数字小游戏
  17. 苹果4s怎么越狱教程_苹果手机桌面图标怎么随意摆放 iPhone桌面图标随意摆放教程...
  18. 《应用程序性能测试的艺术(第2版)》目录—导读
  19. 哪个计算机软件可以编辑动画文字,介绍一种可以编辑动态图片和文字的软件
  20. python在子类中添加新的属性_python - 如何创建类属性?

热门文章

  1. 打开相机用鼠标画框,画下一个时上一个消失
  2. Why Every Organization Needs an Augmented Reality Strategy?How Does Augmented Reality Work?
  3. 190501每日一句
  4. 番茄助手破解找到VA_X.dll的位置
  5. Atitit 项目范围管理 目录 1. 应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制 1 1.1. 项目范围管理的五个过程 1 2. 启动过程 1 2.1. 项目章程(如质量、
  6. Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt
  7. paip.提升用户体验----gcc c++ 编译速度提升by预编译头技术 .doc
  8. paip.c#.nett 系统托盘动态图标闪烁图标
  9. 在LINUX上,Apache安装记
  10. 用户 'sa' 登录失败。 连接SQL2000出现的问题。