news 2026/5/3 21:55:25

算法训练营第十九天 | 1047. 删除字符串中的所有相邻重复项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法训练营第十九天 | 1047. 删除字符串中的所有相邻重复项

题目链接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/

视频讲解:https://www.bilibili.com/video/BV12a411P7mw

题目描述:

算法描述:

遍历字符串,将字符依次入栈;如果当前字符与栈顶字符相同(即相邻重复),则将栈顶字符弹出(消除这一对重复项)。
具体步骤拆解如下:
初始化栈:
StringBuffer stack = new StringBuffer();:创建一个 StringBuffer 对象,它在这里充当栈的角色,用于存放最终保留下来的字符。
int top = -1;:top 变量模拟栈顶指针。初始化为 -1 表示当前栈是空的。
遍历字符串:
通过 for 循环和 s.charAt(i) 依次获取字符串 s 中的每一个字符 ch。
核心判断与操作:
遇到相邻重复(出栈):
当 top >= 0(说明栈里有元素)且 stack.charAt(top) == ch(当前字符 ch 与栈顶的字符一模一样)时,说明遇到了相邻的重复项。此时调用 stack.deleteCharAt(top) 删除栈顶字符,并将栈顶指针 --top(相当于出栈操作)。
未遇到重复(入栈):
如果不满足上述条件,说明当前字符 ch 与栈顶字符不同(或者栈是空的)。此时调用 stack.append(ch) 将字符加入末尾,并将栈顶指针 ++top(相当于入栈操作)。
返回结果:
遍历结束后,stack 中剩下的就是消除了所有相邻重复项后的字符串,最后通过 stack.toString() 返回。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 18:55:32

给STM32F103VET6找个外挂硬盘:手把手教你用W25Q64存储并显示GBK字库

STM32F103VET6外挂W25Q64实现GBK字库存储与显示的完整方案 当STM32项目需要显示大量中文时,内部Flash的512KB容量往往捉襟见肘。本文将展示如何利用仅8元成本的W25Q64 SPI Flash芯片,构建一个高效的外挂字库系统,实现完整的GBK汉字显示功能。…

作者头像 李华
网站建设 2026/5/1 18:49:44

Office Custom UI Editor:零代码定制Office界面的完整指南

Office Custom UI Editor:零代码定制Office界面的完整指南 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …

作者头像 李华
网站建设 2026/5/1 18:48:35

从DeepLab v3源码出发,5分钟搞懂ASPP模块在语义分割中的妙用

从DeepLab v3源码出发,5分钟搞懂ASPP模块在语义分割中的妙用 语义分割任务的核心挑战之一是如何在保持高分辨率的同时捕获多尺度上下文信息。DeepLab系列模型通过引入ASPP(Atrous Spatial Pyramid Pooling)模块,巧妙地解决了这一难…

作者头像 李华
网站建设 2026/5/1 18:46:53

BilibiliDown:5分钟掌握B站视频下载的终极免费工具

BilibiliDown:5分钟掌握B站视频下载的终极免费工具 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/B…

作者头像 李华
网站建设 2026/5/1 18:46:06

3步掌握Python金融数据获取:efinance开源工具实战指南

3步掌握Python金融数据获取:efinance开源工具实战指南 【免费下载链接】efinance efinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库,回测以及量化交易的好帮手!🚀🚀🚀 项目地址: http…

作者头像 李华