news 2026/4/30 12:02:14

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

作者头像

张小明

前端开发工程师

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

题目链接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/ 视频讲解:https://www.bilibili.com/video/BV12a411P7mw4

核心思路解析:为什么用栈?

这道题要求反复删除字符串中相邻且相同的字符对,直到无法删除为止。这个过程类似于“消消乐”。

是解决此问题的完美数据结构,原因正如您所说:栈帮助我们记录了遍历到当前元素时,前一个元素是什么

更具体地说:

  • 当遍历字符串时,我们将字符依次与栈顶元素(即“前一个”可能被保留的元素)比较。

  • 如果当前字符栈顶字符相同,说明它们相邻且重复,触发“消除”操作(将栈顶弹出)。

  • 如果不相同,则将当前字符压入栈,它成为新的“前一个”元素供后续比较。

  • 遍历完成后,栈中剩余的元素就是删除所有相邻重复项后的最终结果。

这个过程模拟了我们手动消除的过程,但效率更高,只需遍历一次字符串。

算法步骤

  1. 初始化一个空栈(在C++中,可以直接用string类型模拟栈,便于直接生成结果字符串)。

  2. 遍历输入字符串s的每一个字符ch

  3. 核心操作

    • 如果栈不为空且当前字符ch等于栈顶字符,则弹出栈顶字符(消除这对相邻重复项)。

    • 否则,将当前字符ch压入栈中。

  4. 返回结果:遍历结束后,栈中剩余的字符连接起来就是最终答案。

复杂度分析

  • 时间复杂度:O(n),其中 n 是字符串的长度。我们只需要遍历字符串一次,每个字符的入栈和出栈操作都是 O(1)。

  • 空间复杂度:O(n),在最坏情况下(字符串没有相邻重复,如”abcdef“),栈需要存储所有字符。

#include <string> using namespace std; class Solution { public: string removeDuplicates(string s) { string stk; // 使用string模拟栈,便于直接返回结果 for (char ch : s) { // 如果栈不空,且当前字符与栈顶字符相同 if (!stk.empty() && ch == stk.back()) { stk.pop_back(); // 消除相邻重复对 } else { stk.push_back(ch); // 否则,字符入栈 } } return stk; // 栈中内容即为结果 } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 11:51:01

天猫客服数据分析实战:4步精准解析CSV

步骤 1:先做“选编码”——多编码尝试读取 这是最关键的一步。中国导出的 CSV 经常不是 UTF-8,所以代码不能假定编码,而是按顺序“试一遍”。 def _load_csv_rows(path: Path) -> tuple[list[dict[str, str]], str]:"""按多种编码尝试读取 CSV。Windows…

作者头像 李华
网站建设 2026/4/30 11:47:53

别再傻傻分不清!一张图带你搞懂思科CDP与标准LLDP的核心区别与选用场景

思科CDP与标准LLDP的深度对比与实战选型指南 在网络工程师的日常工作中&#xff0c;设备发现协议的选择往往被忽视&#xff0c;直到异构网络环境下的兼容性问题突然出现。当思科交换机需要与华为、H3C等厂商设备协同工作时&#xff0c;CDP与LLDP的差异就变得至关重要。本文将彻…

作者头像 李华
网站建设 2026/4/30 11:47:31

我靠AI在小红书/抖音月入过万?普通人可复制的3个副业实操拆解

普通人如何用AI在小红书/抖音实现月入过万&#xff1f;3个零门槛副业全解析 在杭州某互联网公司做运营的林婷&#xff0c;去年用下班时间运营的AI绘画账号&#xff0c;单月变现突破2.8万元。这个90后女孩的经历并非个例——2023年抖音生态报告显示&#xff0c;平台AI相关内容创…

作者头像 李华
网站建设 2026/4/30 11:47:31

HPH的构造组成 每个部件都干啥用

HPH&#xff08;高压均质机&#xff09;作为制药、食品以及化工领域中至关重要的设备&#xff0c;其构造虽并非复杂得让人难以捉摸&#xff0c;但其中的每个部件对于最终的处理效果都有着直接且关键的影响。深入理解HPH的构造&#xff0c;不仅能够助力你在面对设备出现故障时迅…

作者头像 李华
网站建设 2026/4/30 11:46:35

实时面部动画技术:Blendshape原理与优化实践

1. 实时面部动画技术概述在虚拟现实和数字人技术快速发展的今天&#xff0c;实时面部动画已成为连接真实世界与虚拟世界的桥梁。作为一名长期从事计算机图形学研究的从业者&#xff0c;我见证了从早期的关键帧动画到如今基于深度学习的表情捕捉技术的演进历程。其中&#xff0c…

作者头像 李华