go 批量删除文件内字符串_leetcode1047_go_删除字符串中的所有相邻重复项
题目
给出由小写字母组成的字符串 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_删除字符串中的所有相邻重复项相关推荐
- 算法训练第十一天|力扣20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值
20. 有效的括号 题目链接:有效的括号 参考:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B ...
- 算法训练Day11 | LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
目录 LeetCode232.用栈实现队列 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode225. 用队列实现栈 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 ...
- 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...
- 1209. 删除字符串中的所有相邻重复项 II
1209. 删除字符串中的所有相邻重复项 II 题目 我的解答 题目 给你一个字符串 s,「k 倍重复项删除操作」将会从 s 中选择 k 个相邻且相等的字母,并删除它们,使被删去的字符串的左侧和右侧连 ...
- 1047. 删除字符串中的所有相邻重复项
删除字符串中的所有相邻重复项 题目 分析 我的解答 题目 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们. 在 S 上反复执行重复项 ...
- python 字符串删除重复_leetcode No.1047 删除字符串中的所有相邻重复项
题目链接: 删除字符串中的所有相邻重复项 - 力扣(LeetCode)leetcode-cn.com 题目描述: 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们 ...
- Suzy找到实习了吗Day 11 |栈与队列中途 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值
Day 11 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值 20. 有效的括号 注意栈不是一个数据结构,需要自己用list实现栈的逻辑 class Solu ...
- leetcode:前 K 个高频元素、删除字符串中的所有相邻重复项、有多少小于当前数字的数字、有效的山脉数组、独一无二的出现次数(JavaScript)
文章目录 347. 前 K 个高频元素 思路 1047. 删除字符串中的所有相邻重复项 思路 1365. 有多少小于当前数字的数字 思路 优化 继续优化 完整代码 941. 有效的山脉数组 思路 12 ...
- 算法训练Day11|LeetCode 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
题目链接:20. 有效的括号 第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false 第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字 ...
- 代码随想录第11天 | LeetCode20. 有效的括号、LeetCode1047. 删除字符串中的所有相邻重复项、LeetCode150. 逆波兰表达式求值
day11 | LeetCode20. 有效的括号.LeetCode1047. 删除字符串中的所有相邻重复项.LeetCode150. 逆波兰表达式求值 文章目录 day11 | LeetCode20 ...
最新文章
- iOS直播(四)对视频进行压缩编码
- 为什么mac运行变慢,如何提升mac运行速度
- 由“ASP.NET网站限制访问频率”想到的两点问题(转)
- 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)
- Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!
- sgu 207 Robbers
- 系统无法在消息文件中为application_iOS 14 Filza 文件消息,M1 能用 win 系统
- 现代软件工程系列 学生读后感 梦断代码 SpringGreen
- log4j日志 linux配置,Log4j 日志详细用法
- 设计模式学习总结(一)——设计原则与UML统一建模语言
- java return true false_javascript中return,return true,return false三者的用法及区别
- 5.2 LSTM、GRU tensorflow使用
- 高通平台文档下载【学习笔记】
- Android Verified Boot dm-verity 优化和实战2
- BAT解密:互联网技术发展之路(1) - 技术发展的驱动力
- c语言生成随机数猜数字大小,产生一个随机数,进行猜数字小游戏
- 苹果4s怎么越狱教程_苹果手机桌面图标怎么随意摆放 iPhone桌面图标随意摆放教程...
- 《应用程序性能测试的艺术(第2版)》目录—导读
- 哪个计算机软件可以编辑动画文字,介绍一种可以编辑动态图片和文字的软件
- python在子类中添加新的属性_python - 如何创建类属性?
热门文章
- 打开相机用鼠标画框,画下一个时上一个消失
- Why Every Organization Needs an Augmented Reality Strategy?How Does Augmented Reality Work?
- 190501每日一句
- 番茄助手破解找到VA_X.dll的位置
- Atitit 项目范围管理 目录 1. 应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制	1 1.1. 项目范围管理的五个过程	1 2. 启动过程	1 2.1. 项目章程(如质量、
- Atitit 代理与分销系统(1) 子代理 充值总额功能设计概览 sum() groubpy subagt
- paip.提升用户体验----gcc c++ 编译速度提升by预编译头技术 .doc
- paip.c#.nett 系统托盘动态图标闪烁图标
- 在LINUX上,Apache安装记
- 用户 'sa' 登录失败。 连接SQL2000出现的问题。