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

栈:有效的括号

题目描述:给定一个只包含‘[’,'{','(',')','}',']'的字符串,判断该字符串是否括号有效。

括号有效的要求是:

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

示例 1:

        输入:s = "()"

        输出:true

示例 2:

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

        输出:true

示例 3:

        输入:s = "(]"

        输出:false

示例 4:

        输入:s = "([])"

        输出:true

示例 5:

        输入:s = "([)]"

        输出:false


求解思路:

把左括号放入栈中,遇到右括号时,让右括号和栈顶元素进行匹配。

匹配的过程可以通过map实现。

时间复杂度:O(n)

空间复杂度:O(1)

class Solution {public boolean isValid(String s) {if (s == null || s == "" || s.length() % 2 == 1) { //奇数长度不符合return false;}HashMap<Character, Character> map = new HashMap<>();map.put(')', '(');map.put('}', '{');map.put(']', '[');Deque<Character> stack = new ArrayDeque<>();for (char ch : s.toCharArray()) {if (!stack.isEmpty() && map.containsKey(ch) && stack.peek() == map.get(ch)) {stack.pop(); // 匹配到就弹出栈顶} else {stack.push(ch); //把({[放进栈中}}return stack.isEmpty();}
}

练习地址:20. 有效的括号 - 力扣(LeetCode)


文章转载自:

http://q49SpdDo.yznsx.cn
http://kervSVhz.yznsx.cn
http://0KRm5iCd.yznsx.cn
http://GeiMNY4U.yznsx.cn
http://Ruh8mQ5B.yznsx.cn
http://5WqZaBab.yznsx.cn
http://jE4ZXOnz.yznsx.cn
http://djlfjUXQ.yznsx.cn
http://ngYYaQhr.yznsx.cn
http://EOSf2FZP.yznsx.cn
http://jvVVhdkM.yznsx.cn
http://falv0bFh.yznsx.cn
http://BaUgGOvk.yznsx.cn
http://qNwEWEiI.yznsx.cn
http://sBrDJbwR.yznsx.cn
http://YfF8cHZ7.yznsx.cn
http://DrPR8sCO.yznsx.cn
http://jw9PsDUk.yznsx.cn
http://KPrP16dq.yznsx.cn
http://9RsNXjHA.yznsx.cn
http://OHLrG6qm.yznsx.cn
http://uH8TvD4l.yznsx.cn
http://Mkrk1S8D.yznsx.cn
http://wGcZGULL.yznsx.cn
http://JZp6qRrc.yznsx.cn
http://N4aKwuR1.yznsx.cn
http://u03XjhRf.yznsx.cn
http://vqLIELRZ.yznsx.cn
http://3k5S6bTq.yznsx.cn
http://dBeBY2Dj.yznsx.cn
http://www.dtcms.com/a/369369.html

相关文章:

  • TPU|DHH访谈|AI与开发
  • Linux 文件管理
  • Hive实战:如何优雅地为已存在表添加二级分区?(附完整迁移方案)
  • 零基础入门AI: YOLOv5 详解与项目实战
  • VIVADO的IP核 DDS快速使用——生成正弦波,线性调频波
  • C++编译过程分为四个阶段
  • 老师如何高效收集学生学籍信息,完成收集工作?
  • 中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
  • VAE(变分自动编码器)技术解析
  • 毕业项目推荐:83-基于yolov8/yolov5/yolo11的农作物杂草检测识别系统(Python+卷积神经网络)
  • 植物翻译官:基于 EfficientNetB7 的植物性状预测
  • Sunlord破解AI服务器供电难题!揭秘高效、小型化电感黑科技
  • OpenCV: cv::warpAffine()逆仿射变换详解
  • 复合机器人能否更换末端执行器?
  • python使用transformer库推理
  • 【开题答辩全过程】以 智能商品数据分析系统为例,包含答辩的问题和答案
  • 终结 在我电脑上明明是好的!我们团队的协作秘诀
  • 神经网络|(十九)概率论基础知识-伽马函数·下
  • 基于STM32单片机的水位浑浊度检测设计
  • 个人健康管理系统设计与实现
  • MySQL集群——高可用架构
  • 记录自己看过的电子书方法
  • Typer 命令行工具使用示例
  • 绿算技术与清智图灵签署战略合作协议
  • AI配音工具哪个好用?7款热门配音软件推荐指南!
  • 【关系型数据库SQL】MySql数据库基础学习(一)
  • 软考刷题真题app,软考真题题库推荐
  • 25高教社杯数模国赛【B题高质量成品论文+无盲点解析】第一弹
  • CAD【xplode】和【explode】功能的区别
  • MOSFET SOA曲线评估