尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
栈的应用妙招:五道题秒解字符串难题
栈是我们之前学过的一种容器针对特定的题型这种容器能让我们更快地解决问题1.删除字符串中的所有相邻重复项题目来源1047. 删除字符串中的所有相邻重复项 - 力扣LeetCode这道题有点像俄罗斯方块那个游戏可以消除的版本可以将字符串竖着看就像这样将相邻的元素都删掉可以发现题目完美符合栈这个数据结构可以在这里使用栈但没必要用一个字符串来模拟栈就足够了具体代码如下2.比较含退格的字符串题目来源844. 比较含退格的字符串 - 力扣LeetCode题目的意思很简单把#当做删除键对字符串进行处理最后比较处理完的字符串相不相等可以发现这道题和上一道题基本上是一模一样的只不过删除的规则不一样上道题删除的规则是有相邻的相同字母就删除这道题是遇到‘#’就删除具体代码如下3.基本计算器II题目来源227. 基本计算器 II - 力扣LeetCode先来看题目是什么意思题目给了我们一个字符串这个字符串的内容表示一个计算式需要我们将计算的结果返回字符串中的字符大致可以分为三类1数字2运算符号3空格因为空格很好处理所以我们这里只需要考虑数字和运算符号怎么处理就好了按照计算式来看每一个数字都对应着一个计算符号由于运算符号优先级的关系这里‘*’ ‘/’和,-之间需要采取不同的处理方式运算符号是‘*’,/时可以直接与前一个数字进行运算运算符号是‘’‘-’时需要考虑后面的符号是否是‘*’‘/’所以我们需要一个整形数组来管理结果数组中的每一个元素都是进行完乘除操作或者是不需要乘除操作的数字最后将这些元素都加起来就得到了最终的结果具体代码如下还有一个需要注意的点在统计每一个数字时我们需要考虑这个数字是几位数并且因为for循环本身会进行所以我们需要先检查下一个字符是否是数字再决定是否要进行这样的好处是不会跳过运算符号4.字符串解码题目来源394. 字符串解码 - 力扣LeetCode根据题目的意思我们可以知道字符的类型共有四种1.数字2.字母3.[4.‘]’根据这四种情况我们需要采取不同的处理方法以下面这个例子来分析根据题目的意思我们能够知道每一个括号前都有一个数字代表括号里面的内容要重复出现几次所以出现一个数字时我们需要将这个数字记录下来又因为数字后面可能还有其他括号内容对应的数字并且内部的内容是先进行复制的这种先后顺序完美符合栈这个数据结构所以我们可以定义一个栈来管理数字同样的我们可以定义一个栈来管理字符串当遇到数字时我们将数字记录下来当遇到‘[’时我们让i根据‘[’后面是什么字符来考虑进行什么操作如果后面是数字就再次将数字记录下来如果是字母那就将字母记录下来当遇到]时我们将字符串的栈顶元素和数字的栈顶元素拿出来解析加到字符的栈顶元素的后面当遇到字母时将字母加到栈顶元素的后面就好了具体代码如下5.验证栈序列题目来源946. 验证栈序列 - 力扣LeetCode这道题的意思很简单让我们用那两个数组来模拟栈的进栈出栈看操作是否合法我们直接创建一个栈来进行模拟就好了具体代码如下以上就是本篇文章的全部内容了如果对你有帮助可以点个赞支持一下感谢各位的观看TA 关注的仓库 - 陌染青云 (mo-ran-qingyun) - Gitee.com这是我个人的gitee 仓库,账号上文章的代码都会发到仓库里有兴趣可以看一下
RELATED

相关推荐

2026年WorkBuddy培训公司哪家靠谱?岗位顺序怎么排

2026年WorkBuddy培训公司哪家靠谱?岗位顺序怎么排

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/6 8:58:48
Palantir 的“本体论”-中国式落地实践

Palantir 的“本体论”-中国式落地实践

摘要:本文从 Palantir 的“本体论”语义框架谈起,分享我们在工业现场落地的一套语义化系统:以数据底座接入 40 多种工业协议,用语义层把工厂抽象成 13 种节点类型并构建语义树,再由智能执行层内置 27 种工业分析算子并…

📅 2026/11/6 8:53:48
已有ERP,还需要单独上费控系统吗?开灵科技、金蝶星瀚与浪潮海岳对比

已有ERP,还需要单独上费控系统吗?开灵科技、金蝶星瀚与浪潮海岳对比

ERP里通常已经能做费用单、审批和记账,为什么很多企业仍在评估费控系统?原因多半发生在报销单进入ERP之前:员工出差预订在哪里,预算何时拦截,发票怎么进入票夹,票据是否重复,付款和凭证是否自动…

📅 2026/11/6 8:53:48
MORE NEWS

更多资讯

📰

Orange 安装避坑指南:Python 版本选择与依赖管理

简介:Orange 是一款面向数据挖掘与机器学习初学者及进阶用户的开源可视化分析套件,以组件化拖拽式编程降低建模门槛,适合需要快速完成数据预处理、可视化探索与模式评估的实践者。压缩包共约2000个文件,以1031个png界面截图、951个…

📰

众包最少答案数估算:一致性、置信度与预采样实践

简介:这份资源围绕众包系统中最少答案数量的估计问题展开,面向众包平台设计者、数据质量管理者以及学习Java统计建模的开发者,帮助判断在保证结果可靠性的前提下需要收集多少份回答。项目以Java实现核心算法,涵盖任务难度分类、工…

📰

主模式RTL设计:状态机与三态驱动的物理实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Powershell远程管理服务器客户端

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Java 开发日记高级~

Java.慈祥的开发日记 Java基础语法 SSM学习专栏 JDK8 新特性 Linux服务器开发使用 环境搭建🤖 Linux 基础入门学习 Docker K8S部署使用 Docker入门学习Docker网络 Git 和 Github 项目管理工具 分布式版本控制系统Git分布式版本控制系统Git 二:…

📰

ST-LINK Utility V2.37.26离线工具包深度解析

简介:本资源是STMicroelectronics官方发布的STLink固件更新工具STSW-LINK007 V2-37-26完整安装包,专为STM32/STM8嵌入式开发者设计,解决调试器固件过旧导致的IDE兼容性下降、新MCU型号不识别、编程失败或连接不稳定等实际问题。压缩包共18个文…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬