Java括号匹配

news/2024/11/20 10:37:44/

目录

一、题目描述

二、题解


一、题目描述

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

有效字符串需满足:

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

示例:

输入:s = "()"

输出:true

输入:s = "(]"

输出:false

二、题解

思路分析:

我们可以使用来解决这个问题:

遍历字符串,如果是左括号,就将其入栈

如果是右括号,就将栈顶元素弹出,判断是否是与其匹配的左括号,

若栈中无元素可以弹出,则无能与该右括号匹配的左括号,返回false,

若不是与其匹配的左括号,返回false,

若是与其匹配的左括号,则继续遍历下一个字符。

当循环结束时,判断栈是否为空,

若栈不为空,则表明还有未匹配的左括号,返回false,

若栈为空,则表示所有的左括号都与相同类型的右括号匹配,返回true

代码实现:

class Solution {public boolean isValid(String s) {Stack<Character> stack = new Stack<>();for (int i = 0; i < s.length(); i++) {//判断是否是左括号char ch = s.charAt(i);if(ch == '(' || ch == '[' || ch == '{'){stack.push(ch);}else {//右括号,出栈//无左括号能够匹配,返回falseif(stack.empty()){return false;}char ch2 = stack.pop();if((ch2 == '(' && ch == ')') || (ch2 == '[' && ch == ']') || (ch2 == '{' && ch == '}')){}else {return false;}}}return stack.empty();}
}

题目来自:

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


http://www.ppmy.cn/news/1127479.html

相关文章

3秒钟解析超买超卖和Renko图表关系

不管是刚进入市场中的外汇新手&#xff0c;还是已经在外汇市场中赚的盆满钵满&#xff0c;只要还是外汇市场中的一份子&#xff0c;一定在不止一次听说过超买和超卖。今天FPmarkets澳福和各位投资者一起探讨超买超卖和Renko图表的关系。 超买在FPmarkets看来就是指大部分市场参…

JavaScript面试题整理(二)

数据类型篇 13、其他值到字符串的转换规则&#xff1f; Null和Undefined类型&#xff0c;null转换为‘null’&#xff0c;undefined转换为‘undefined’Boolean类型&#xff0c;true转换为‘true’&#xff0c;false转换为‘false’Number类型的值直接转换&#xff0c;不过那…

vscode快捷生成html标签

vscode快捷生成代码片段 ul>li*2.silder会生成如下代码片段 再或者 ul>li*6.silder>p.silder$会生成如下代码片段 如果页面中涉及到上面这种情况的代码块的时候可以使用这种方法快捷生成对应的代码块

2023_Spark_实验七:Scala函数式编程部分演示

1、Scala中的函数 在Scala中&#xff0c;函数是“头等公民”&#xff0c;就和数字一样。可以在变量中存放函数&#xff0c;即&#xff1a;将函数作为变量的值&#xff08;值函数&#xff09;。 def myFun1(name:String):String"Hello " nameprintln(myFun1("…

【GDB】自定义命令

.gdbinit 文件的使用 gdb自定义命令 自定义命令格式 define <command> <code> end document <command> <help text> end示例 .gdbinit 脚本中输入如下内容 layout asm b 5define print-tyustliecho hello, world\n enddocument print-tyustliusage…

MATLAB 与 Cruise 的联合仿真

文章目录 检查matlab是否安装了编译器在 MATLAB 中添加路径联合仿真示例 检查matlab是否安装了编译器 第一步&#xff0c;先检查matlab是否安装了编译器&#xff1a; 关于编译器的配置&#xff0c;可以查看&#xff1a; https://blog.csdn.net/chengkai730/article/details/1…

基于YOLOv8模型的安全帽和背心检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的安全帽和背心检测系统可用于日常生活中检测与定位安全帽&#xff08;Hardhat&#xff09;和背心&#xff08;SafetyVest&#xff09;目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图…

XC6206 低压线性稳压器 300mA低功耗LDO

XC6206系列是一款采用CMOS和激光修整技术制造的高精度、低能耗、3端子、正电压调压器。该系列提供了一个大的电流和一个明显的小的辍学电压。 XC6206由限流器电路、驱动器晶体管、精确参考电压和纠错电路组成。该系列兼容低ESR陶瓷电容。电流限制器的折叠电路作为短路保护以及输…