栈(Stack)汇总

栈简介

栈(Stack)是只允许在一端进行插入或者删除操作的线性表。它的操作特性可以概括为——后进先出(Last In First Out,LIFO)。栈顶(Top)——线性表允许进行插入删除的一端;
栈底(Bottom)——线性表不允许进行插入删除的一端;

解析表达式

以±乘()为例。
数据栈记录数值,操作符栈记录操作符。
遇到右括号或运算结束时才计算加减,此时确保没有乘法。ret = 0; 如果栈顶操作符是+,则ret += 数据栈顶, 否则ret -=数据栈顶。两个栈出栈。直到遇到(或操作栈为空。如果遇到(,则把左括号出栈。栈顶元素 += ret。
乘法执行时机:新的运算数或括号执行完成。 只需要执行一次乘法。
操作数(变量、常量) 之前的符合如果是乘号,马上计算。否则,等右括号或结束时,统一计算。
操作符栈只会有+ - (*。

难度分
【栈】1106. 解析布尔表达式1880
【栈】1096. 花括号展开 II2348
【栈】224. 基本计算器
【回溯 栈 代数系统 动态规划】282. 给表达式添加运算符
【栈】591. 标签验证器
【栈】726. 原子的数量
【栈】770. 基本计算器 IV

了解逆波兰表达式

前缀(前序)表达法(波兰表达式):+ a b
中缀(中序)表达法:a + b 我们常用的表达方式。
后缀(后续)表达法(逆波兰表达式):a b +
逆波兰表达式优点,运算简单,不需要括号:
操作数入栈,遇到操作符,则取出栈顶两个元素,进行运算,并将结果入栈。

局部变量的作用域

【栈】736. Lisp 语法解析

对顶栈

难度分
【对顶栈】2296. 设计一个文本编辑器1911

临项消除

难度分
【栈 最小公倍数 最大公约数】2197. 替换数组中的非互质数2057
【栈】2751. 机器人碰撞2091

括号合法性判断

较难题为主,以后补充。

单调栈

单调栈分类、封装和总结

其它

难度分
【栈】895. 最大频率栈2027
【栈】1172. 餐盘栈2109

扩展阅读

视频课程

有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关下载

想高屋建瓴的学习算法,请下载《喜缺全书算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653

我想对大家说的话
《喜缺全书算法册》以原理、正确性证明、总结为主。
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】基础IO——文件描述符,重定向

话接上篇: 1.文件描述符fd 磁盘文件 VS 内存文件? 当文件存储在磁盘当中时,我们将其称之为磁盘文件,而当磁盘文件被加载到内存当中后,我们将加载到内存当中的文件称之为内存文件。磁盘文件和内存文件之间的关系就像程…

红队内网攻防渗透:内网渗透之Linux内网权限提升技术:udf提权Capability权限LD_PRELOAD环境变量

红队内网攻防渗透 1. 内网权限提升技术1.1 Linux系统提权-Web&用户-数据库udf提权1.1.1 信息收集1.1.2 Web权限获取1.1.3 MYSQL-UDF提权1.1.4 下载到目标上1.1.5 连接确认是否有条件进行导出调用1.1.6 开始进行写入导出调用1.2 Linux系统提权-Web&用户-Capability能力1…

ThinkBook 16 2024 Ubuntu 触控板问题解决

sudo insmod goodix-gt7868q.ko sudo cp local-overrides.quirks /etc/libinput/local-overrides.quirks sudo systemctl restart gdm 有偿解决,无效退款 联系前,请写明笔记本型号和ubuntu版本

生命在于学习——Python人工智能原理(3.3)

三、深度学习 4、激活函数 激活函数的主要作用是对神经元获得的输入进行非线性变换,以此反映神经元的非线性特性。常见的激活函数有线性激活函数、符号激活函数、Sigmod激活函数、双曲正切激活函数、高斯激活函数、ReLU激活函数。 (1)线性…

【elementui源码解析】如何实现自动渲染md文档-第二篇

目录 1.概要 2.引用文件 1)components.json 2)json-template/string 3)os.EOL 3.变量定义 4.模版填充 5.MAIN_TEMPLATE填充 6.src下的index.js文件 1)install 2)export 7.总结 1.概要 今天看第二个命令no…

videoJS 视频 + 独一无二皮肤 + mp4/m3u8

推荐和参考文章: video.js调用-腾讯云开发者社区-腾讯云> 一、总结(点击显示或隐藏总结内容)一句话总结:网上有各种细致的现成的代码可以拿来用,没必要自己死专1、video.js有两种初始化方式?一种是在v…

C++并发之条件变量(std::condition_variable)

目录 1 概述2 使用实例3 接口使用3.1 wait3.2 wait_for3.3 wait_until3.4 notify_one3.5 notiry_all3.5 notify_all_at_thread_exit1 概述 条件变量是一个能够阻塞调用线程直到被通知恢复的对象。   当调用其中一个等待函数时,它使用unique_lock(通过互斥锁)来锁定线程。线程…

hadoop和hbase对应版本关系

https://hbase.apache.org/book.html#configuration

DuDuTalk语音工牌:如何帮助房企打造数字化的案场接待体验

房地产案场接待作为客户体验的第一站,其服务质量直接影响客户的购房决策。然而,传统的案场接待方式存在诸多挑战,如信息记录不准确、服务流程难以标准化、客户反馈收集困难等。语音工牌作为一种创新的智能设备,凭借其独特的功能和…

Office 2021 mac/win版:智慧升级,办公新风尚

Office 2021是微软公司推出的一款高效、智能且功能丰富的办公软件套件。它集成了Word、Excel、PowerPoint等多个经典应用程序,旨在为用户提供更出色的办公体验。 Office 2021 mac/win版获取 Office 2021在继承了前代版本优点的基础上,进行了大量的优化…

接口测试之用Fiddler对手机app进行抓包

Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此,它还可以支持…

JVC摄像机SD卡变成RAW的恢复方法

JVC小日本胜利公司,公司名字绕口且产品线极广,涉及汽车、影音、娱乐……,而JVC在摄像机产品方面也有涉及,不过市场上极为少见。下边我们来看下这个JVC摄像机MP4恢复案例。 故障存储: 32G存储卡 RAW文件系统 故障现象: 客户无…

万字长文讲解如何快速搭建一个Spring Cloud项目

文章目录 概念基本概念微服务七大组件 初始化Maven父工程整合注册中心组件整合远程调用与负载均衡组件组件整合网关组件整合配置中心组件以gateway模块为例 整合分布式事务组件操作数据库模拟创建订单和扣减库存整合Seata 整合熔断降级组件整合链路追踪组件源码地址参考来源 概…

springcloud gateway转发websocket请求的404问题定位

一、问题 前端小程序通过springcloud gateway接入并访问后端的诸多微服务,几十个微服务相关功能均正常,只有小程序到后端推送服务的websocket连接建立不起来,使用whireshark抓包,发现在小程序通过 GET ws://192.168.6.100:8888/w…

Robot Operating System (ROS)中,发布与订阅

在Robot Operating System (ROS)中,发布与订阅是一种基于主题的异步消息传递机制,用于节点间的通信。ROS的设计是围绕着这一概念,它允许不同节点之间解耦,每个节点专注于自己的任务,通过发布和订阅消息来与其他节点交互…

计算机体系结构重点学习

从外部I/O与上层应用交互的整体软硬件过程 上层应用发出I/O请求:上层应用程序,如一个文本编辑器、网络浏览器或者任何软件应用,需要读取或写入数据时,会通过调用操作系统提供的API(如文件操作API、网络操作API等&…

SpringBoot之请求映射原理

前言 我们发出的请求,SpringMVC是如何精准定位到那个Controller以及具体方法?其实这都是 HandlerMapping 发挥的作用,这篇博文我们以 RequestMappingHandlerMapping 为例并结合源码一步步进行分析。 定义HandlerMapping 默认 HandlerMappi…

Docker部署常见应用之桌面版系统ubuntu-desktop

文章目录 ubuntu-desktop 简介ubuntu-desktop 部署参考文章 ubuntu-desktop 简介 colinchang/ubuntu-desktop 是一个Docker镜像,基于KasmWeb⁠的 Ubuntu 22.04 桌面版(Web) Docker Image。镜像替换了阿里云Ubuntu Jammy镜像源,安…

重生之 SpringBoot3 入门保姆级学习(21、场景整合 Redis 定制对象序列化存储)

重生之 SpringBoot3 入门保姆级学习(21、场景整合 Redis 定制对象序列化存储) 6.4 定制化 6.4 定制化 需求:保存一个 Person 对象到 redis 创建 Person 类 package com.zhong.redis.entity;import lombok.AllArgsConstructor; import lombok…

浅谈C++基本框架内涵及其学习路线

目录 一.C的内涵本质 1. 面向对象编程(OOP) 2. 低级控制 3. 模板编程 4. 标准库(STL) 5. 多范式支持 二.学习路线 1. 基础阶段 C基础语法 函数 数组和指针 2. 面向对象编程 类和对象 继承和多态 运算符重载 3. 高级…