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

Leetcode20 (有效的括号)

题目描述

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

有效字符串需满足:

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

示例 1:

输入:s = “()”

输出:true

示例 2:

输入:s = “()[]{}”

输出:true

示例 3:

输入:s = “(]”

输出:false

示例 4:

输入:s = “([])”

输出:true

提示:

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

题解1

相当经典的一道题
就是用栈

遍历s,当前为左括号时,直接入栈
当前为右括号判断栈顶元素是否为对应左括号

小点:
1、可以直接判断s长度,如果为奇数直接返回false
2、需要判断时,栈顶元素为空,直接返回false

代码:

class Solution {public boolean isValid(String s) {if(s.length()%2==1) return false;Deque<Character> stack =new ArrayDeque<>();Map<Character,Character> map=new HashMap<>();map.put(')','(');map.put(']','[');map.put('}','{');int len=s.length();for(int i=0;i<len;i++){char ch=s.charAt(i);if(map.containsKey(ch)){if(stack.isEmpty()||map.get(ch)!=stack.peek()) return false;stack.pop();}elsestack.push(ch);}return stack.isEmpty();}
}

题解2

看了一眼最优解
发现可以用数组模拟栈
并且用s.toCharArray()作为这个栈
可以实现栈的同时在这个数组上读取数据
性能极好

class Solution {public boolean isValid(String s) {int len=s.length();if(len%2==1) return false;char[] stack = s.toCharArray();int i=0,j=0;while(i<len){if(stack[i]==')'&&j>0&&stack[j-1]=='(') j--;else if(stack[i]==']'&&j>0&&stack[j-1]=='[') j--;else if(stack[i]=='}'&&j>0&&stack[j-1]=='{') j--;else stack[j++]=stack[i];i++;}return j==0;}
}

相关文章:

  • 【慧游鲁博】【11】后端 · Spring Boot 集成 Python 配置
  • 统计学(第8版)——方差分析Ⅰ(考试用)
  • ES Modules 与 CommonJS 的核心区别详解
  • 台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商
  • Web 架构之微服务拆分原则与反模式
  • Windows网络配置避坑指南
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 2】【如何配置和启动蓝牙profile服务】
  • python里的PDFMiner.six 库介绍
  • 菌菇食用攻略:从营养解析到安全指南,解锁科学食菌
  • 【全志V821_FoxPi】2-2 切换为spi nand方案启动
  • Context7 Mcp Quickstart
  • Kubernetes服务部署——RabbitMQ(集群版)
  • CMake指令: add_sub_directory以及工作流程
  • 前端实习校验函数汇总(未完成)
  • 一个超强的推理增强大模型,开源了,本地部署
  • 驭码CodeRider 2.0 产品体验:在VSCode安装并创建一个雷电小游戏
  • 【Web】腾讯云 COS 静态网站部署与自定义域名 HTTPS 全流程
  • IIS 实现 HTTPS:OpenSSL证书生成与配置完整指南
  • DeepSeek-R1与Claude 4.0 Sonnet:开源与闭源大模型的商业生态博弈
  • Electron-vite【实战】MD 编辑器 -- 大纲区(含自动生成大纲,大纲缩进,折叠大纲,滚动同步高亮大纲,点击大纲滚动等)
  • 烟台网站建设方案报价/自己如何制作一个网站
  • 做网站搭建的公司/网络营销的目的是什么
  • 做神马网站快速排/台州百度推广优化
  • wordpress 网站上传到服务器/免费seo优化
  • wordpress 让导航悬浮/网站建设排名优化
  • 深圳做二类学分的网站/站长seo工具