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

栈算法之【有效括号】

目录

LeetCode-20题


LeetCode-20题

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

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

class Solution {public boolean isValid(String s) {// checkif (s == null || s.length() < 2)return false;// map的key表示左括号,value表示右括号Map<Character, Character> cache = new HashMap<>();cache.put('(', ')');cache.put('{', '}');cache.put('[', ']');// 借助LinkedList实现的栈LinkedList<Character> stack = new LinkedList<>();for (int i = 0; i < s.length(); i++) {char curr = s.charAt(i);if (cache.containsKey(curr)) {// 如果是左括号,就将其对应的右括号入栈stack.push(cache.get(curr));} else {// 如果是右括号if (!stack.isEmpty() && stack.peek() == curr) {// 此时栈不为空,且栈顶元素就是当前的右括号,执行出栈操作stack.pop();} else {return false;}}}// 此时栈空了就表示s是有效括号return stack.isEmpty();}
}

http://www.xdnf.cn/news/16528.html

相关文章:

  • mybatis-plus从入门到入土(三):持久层接口之IService
  • Day 22: 复习
  • OTG原理讲解
  • 进制间的映射关系
  • 【RHCSA 问答题】第 12 章 安装和更新软件包
  • WorkManager vs Flow 适用场景分析
  • CSS变量与Houdini自定义属性:解锁样式编程新维度
  • [硬件电路-94]:模拟器件 - 信号耦合,让被放大信号与静态工作点的直流偏置信号完美的融合
  • 慧星云新增大模型服务:多款大模型轻松调用
  • 编程语言Java——核心技术篇(四)集合类详解
  • Go的内存管理和垃圾回收
  • 震网(Stuxnet):打开潘多拉魔盒的数字幽灵
  • 网络:基础概念
  • React入门指南——指北指南(第二节)
  • 深入浅出学习 KNN 算法:从原理到数字识别实践
  • 【简述】C++11/14/17/20/23 中的关键新特性
  • 从UX到AX:从“设计路径”到“共创关系”的范式革命——Agentic Experience如何重塑未来产品哲学
  • 秋招Day19 - 分布式 - 限流
  • 数据科学与大数据技术专业的核心课程体系及发展路径全解析
  • 从0开始学linux韦东山教程Linux驱动入门实验班(5)
  • 基于华为ENSP的OSPFLSA深入浅出-0
  • 元宇宙新基建:重塑数字市场的“超大陆”边界
  • LeetCode 895:最大频率栈
  • 6G通感算
  • 利用DeepSeek解决kdb+x进行tpch测试的几个问题及使用感受
  • 阿里开源Qwen3-Coder,编程大模型进入高效时代
  • [Python] -进阶理解7- Python中的内存管理机制简析
  • 详解Aerospike数据库在Linux系统上的安装流程
  • Django项目开发技巧
  • MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)