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

Leetcode面试经典150题-20.有效的括号

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

有效字符串需满足:

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

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()[]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

这个题是非常基础的栈的使用,其他的就不多说了,上代码,看不懂的请留言或者私信,收到第一时间解答

class Solution {/**非常简单的题,整体思想就是用个栈,如果是左括号就入栈,如果是右括号就弹出如果弹出的不是自己对应的左括号,直接失败如果最后栈为空就是成功,如果不是空就是失败了 */public boolean isValid(String s) {/**不是2的整数倍,不可能是有效的 */if(s.length() % 2 == 1) {return false;}/**转成字符数组*/char[] sArr = s.toCharArray();/**定义栈*/Stack<Character> stack = new Stack<>();for(char c : sArr) {if(c == '(' || c == '[' ||c == '{') {/**如果是左括号放入对应的右括号,这样右括号的时候直接判断是否相等就行了 */stack.push(c == '('?')':c == '['?']' : '}');} else {/**栈为空肯定找不到对应的,如果弹出来的不对应也匹配不上 */if(stack.isEmpty() || stack.pop() != c) {return false;} }}/**配对即弹出,如果最后弹空了,说明都对上了 */return stack.isEmpty();}
}

http://www.lryc.cn/news/440355.html

相关文章:

  • Git常用指令大全详解
  • 面试真题-TCP的三次握手
  • LabVIEW多语言支持优化
  • 身份证阅读器API模式 VUE Dorado7
  • 北京通州自闭症学校推荐:打造和谐学习氛围,助力孩子成长
  • openstack之cinder介绍
  • 第k个排列 - 华为OD统一考试(E卷)
  • 清理C盘缓存,电脑缓存清理怎么一键删除,操作简单的教程
  • 网络安全-ssrf
  • c++刷题
  • 艾丽卡的区块链英语小课堂
  • 计算机毕业设计 公寓出租系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • eclipse使用 笔记02
  • 基于C++实现(MFC)职工工作量统计系统
  • 大家好,我叫Redis~
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战6-组件化开发-样式结构重用常见组件
  • 网络安全学习(五)Burpsuite
  • 多版本node管理工具nvm
  • 如何扫描试卷去除笔迹?4种方法还原整洁试卷
  • 介绍⼀下泛型擦除
  • 从底层原理上理解ClickHouse 中的 Distributed 引擎
  • 社区志愿者服务系统小程序的设计
  • echarts map地图动态下钻,自定义标注,自定义tooltip弹窗【完整demo版本】
  • Python热频随机森林分类器算法模型模拟
  • C++11新增特性:lambda表达式、function包装器、bind绑定
  • 动态主题模型DTM(Dynamic topic model)简介及python代码
  • GDPU MySQL数据库 天码行空1 数据库的创建和基本操作
  • 《告别卡顿,一键卸载!IObit Uninstaller 13 免费版让电脑重获新生》
  • Python|基于Kimi大模型,实现上传文档并进行对话(5)
  • C++设计模式——Prototype Pattern原型模式