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

栈-20.有效的括号-力扣(LeetCode)

一、题目解析

对于这个字符串需要左右括号匹配,并且是以正确的顺序

二、算法原理

解法1.图+栈

解法2.用else if代替图+栈

正常做法:对于三种左括号直接进栈('(','[','{'进栈),然后判断与下一个括号是否匹配,匹配则出栈,不匹配则返回false。

改进:当遇到三种左括号时,可以进栈对应的右括号(')',']','}'进栈),然后判断与下一个括号是否相同,当栈为空或者栈顶元素括号不匹配时,返回false,然后出栈。

最后返回值为栈是否为空,为空则返回true,所有括号匹配完,反之为false。

思考过后可以自己实现一下,链接:20. 有效的括号 - 力扣(LeetCode)

三、代码示例

class Solution {
public:bool isValid(string s) {stack<char> k;for(auto e : s){if(e == '(') k.push(')');else if(e == '[') k.push(']');else if(e == '{') k.push('}');else{if(k.empty() || k.top() != e) return false;k.pop();}}return k.empty();}
};

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见! 

相关文章:

  • [Java 基础]类,面向对象的蓝图
  • 策略公开了:年化494%,夏普比率5.86,最大回撤7% | 大模型查询akshare,附代码
  • 艾利特协作机器人:重新定义工业涂胶场景的精度革命
  • Redis初入门
  • 轴承排列自动运行 定时器 外中断 PWM部分程序
  • 2024国产PLM应用案例:河南携路机械
  • JavaScript中判断两个对象是否相同(所有属性的值是否都相同)
  • Spring BeanPostProcessor
  • 《小明的一站式套餐服务平台》
  • 猎板硬金镀层厚度:高频通信领域的性能分水岭
  • Java面试高频核心内容
  • JAVASE:面向对象
  • Pendulum:优雅处理 Python 中的日期与时间
  • CET6 仔细阅读 24年12月第三套-C1 恐惧这一块
  • SAFe/LeSS/DAD等框架的核心适用场景如何选择?
  • 学习笔记(24): 机器学习之数据预处理Pandas和转换成张量格式[2]
  • 开发源码搭建一码双端应用分发平台教程:逐步分析注意事项
  • 激活函数和归一化、正则化
  • return this;返回的是谁
  • Odoo 18 定期发送电子邮件报告(如KPI)配置指南
  • 怎样创建自己的公众号/优化排名 生客seo
  • 如何做vip微信电影网站/营销推广工作内容
  • 厦门网站推广步骤机构/新闻热点
  • 网站程序授权怎么做/vivo应用商店
  • 下载的网站模板怎么使用/郑州百度分公司
  • 如何在工商局网站做企业年报/seo关键字优化