当前位置: 首页 > news >正文

leetcode-hot100-12栈

leetcode100题

文章目录

  • leetcode100题
  • 1.栈
      • 20.有效的括号
          • 方法一:c
          • 方法一:js
          • 方法一:java
      • 155.最小栈
          • 方法一:c
          • 方法一:js
          • 方法一:java
      • 394.字符串解码
          • 方法一:c
          • 方法一:js
          • 方法一:java
      • 739.每日温度
          • 方法一:c
          • 方法一:js
          • 方法一:java
          • 方法二:c(暴力求解:超时)
          • 方法二:js
          • 方法二:java
      • 84.柱状图中最大的矩形
          • 方法一:c
          • 方法一:js
          • 方法一:java

1.栈

20.有效的括号

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

**输入:**s = “()”

**输出:**true

方法一:c
class Solution{public:boolisValid(string s){intn=s.size();// 获取字符串长度if(n%2)returnfalse;// 长度为奇数直接返回false,括号必须成对出现stack<char>stk;// 定义栈存储左括号for(autoc:s)// 遍历字符串每个字符{if(c=='('||c=='['||c=='{')stk.push(c);// 左括号直接入栈else// 右括号执行匹配逻辑{if(stk.size()==0)returnfalse;// 栈空无左括号匹配,直接不合法if(stk.top()=='('&&c==')')stk.pop();// 小括号匹配,弹出栈顶左括号elseif(stk.top()=='['&&c==']')stk.pop();// 中括号匹配,弹出栈顶左括号elseif(stk.top()=='{'&&c=='}')stk.pop();// 大括号匹配,弹出栈顶左括号elsereturnfalse;// 括号类型不匹配,直接不合法}}returnstk.size()==0;// 遍历结束栈空则所有括号匹配,否则不合法}};
方法一:js
varisValid=function(s){constn=s.length;// 获取字符串长度if(n%2)returnfalse;// 长度奇数直接返回false,括号必须成对conststack=[];// 定义数组模拟栈存储左括号for(constcofs){// 遍历字符串每个字符if(c==='('||c==='['||c==='{')stack.push(c);// 左括号入栈else{// 右括号执行匹配逻辑if(stack.length===0)returnfalse;// 栈空无左括号匹配,不合法if(stack[stack.length-1]==='('&&c===')')stack.pop();// 小括号匹配,弹出栈顶elseif(stack[stack.length-1]==='['&&c===']')stack.pop();// 中括号匹配,弹出栈顶elseif(stack[stack.length-1]==='{'&&c==='}')stack.pop();// 大括号匹配,弹出栈顶elsereturnfalse;// 括号类型不匹配,直接不合法}}returnstack.length===0;// 栈空则全部匹配,否则不合法};
方法一:java
classSolution{publicbooleanisValid(Strings){intn=s.length();// 获取字符串长度if(n%2!=0)returnfalse;// 长度奇数直接返回false,括号成对出现Stack<Character>stack=newStack<>();// 初始化栈存储左括号for(inti=0;i<n;i++){// 遍历字符串每个字符charc=s.charAt(i);// 获取当前字符if(c=='('||c=='['||c=='{')stack.push(c);// 左括号入栈else{// 右括号执行匹配逻辑if(stack.isEmpty())returnfalse;// 栈空无左括号匹配,不合法if(stack.peek()=='('&&c==')')stack.pop();// 小括号匹配,弹出栈顶elseif(stack.peek()=='['&&c==']')stack.pop();// 中括号匹配,弹出栈顶elseif(stack.peek()=='{'&&c=='}')stack.pop();// 大括号匹配,弹出栈顶elsereturnfalse;// 括号类型不匹配,直接不合法}}returnstack.isEmpty();// 遍历结束栈空则合法,否则不合法}}

155.最小栈

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。

实现MinStack类:

  • MinStack()初始化堆栈对象。
  • void push(int val)将元素val推入堆栈。
  • void pop()删除堆栈顶部的元素。
  • int top()获取堆栈顶部的元素。
  • int getMin()获取堆栈中的最小元素。
输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]
方法一:c
class MinStack{public:stack<pair<int,int>>stk;// 栈元素为pair:first存储原值,second存储当前栈内最小值MinStack(){stk.push({0,INT_MAX});// 初始化栈,放入哨兵节点,默认最小值为int最大值}voidpush(intval){stk.push({val,min(getMin(),val)});// 入栈:存入当前值+当前栈最新最小值}voidpop(){stk.pop()
http://www.jsqmd.com/news/540908/

相关文章:

  • RexUniNLU实际作品:政务办事指南问答中‘办理条件’‘所需材料’‘办理时限’三元组抽取
  • 机器人用永磁同步电机过载能力及转矩脉动优化研究
  • “开发看不起测试”?我用自动化脚本打了他的脸
  • ffmpegGUI:让FFmpeg视频处理技术大众化的跨平台图形界面工具
  • 突破手机边界:Vectras VM让Android设备变身多系统工作站
  • brpc在分布式数据库中的查询优化:减少RPC往返的终极指南
  • 如何让鼠标点击可视化?ClickShow为教学演示与远程协作提供精准视觉反馈
  • PyTorch模型分析必备:fvcore报错‘No module named iopath‘的三种快速修复方案
  • Qwen3-0.6B-FP8入门必看:6亿参数如何做到≤2GB显存?FP8量化压缩深度解析
  • 如何使用Rainmeter进行网络带宽使用预测:轻松掌握月度流量估算技巧
  • SD1.5镜像运维手册:端口监听检查与服务状态监控
  • ThingsBoard消息处理机制深度解析:从架构设计到性能调优的完整实践指南
  • 实时手机检测-通用效果评估:Precision-Recall曲线绘制与阈值选优
  • 目前,基于CNN和Transformer的医学图像分割面临着许多挑战。 比如CNN在长距离建模...
  • Windows控制器模拟技术详解:ViGEmBus驱动全方位应用指南
  • ChatALL终极指南:如何用开源多AI协同工具实现智能工作流革命
  • 如何高效解密加密音乐文件:Unlock Music 项目深度解析与实战指南
  • 【经验贴】运营岗考过CDA数据分析师一级经验分享
  • Paimon 0.8版本新特性:Flink CDC支持MySQL表结构变更实时同步(详细配置教程)
  • HP-Socket开发者激励计划规则说明:资格、评定与发放
  • 机械扑翼飞鸟机构3D图纸 Solidworks设计
  • 2026年区块链的“隐形引擎”:智能合约2.0如何定义下一代互联网?
  • 关于树状数组区间加、区间求和实现方法的数学推导
  • HunyuanVideo-Foley音效生成:支持SMPTE时间码对齐视频关键帧
  • 2026年3月汽车增压器优选,欧宝A14net增压器组件推荐分析,IHI增压器/小松增压器,汽车增压器生产厂家哪家好 - 品牌推荐师
  • Vue项目中3种PPT在线预览方案对比:iframe嵌入 vs 新窗口打开 vs 微软Office API
  • 破界新生:2026年DApp开发全攻略——从0到1打造下一代互联网应用
  • LeetCode 1052. 爱生气的书店老板【定长滑窗】中等偏低
  • 养护型养护:一种存在论层面的治理范式 ——基于自感痕迹论的实践哲学
  • FLUX.1海景美女图实操手册:从新手检查清单到生成失败排障