【leetcode算法从入门到精通】20. 有效的括号
2026/6/26 2:27:26 网站建设 项目流程

题目

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

有效字符串需满足:

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

示例 1:

输入:s = “()”

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = “(]”

输出:false

示例 4:

输入:s = “([])”

输出:true

示例 5:

输入:s = “([)]”

输出:false

提示:

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

解析

class Solution { public boolean isValid(String s) { int n = s.length(); // 如果不是偶数,返回false if (n % 2 == 1) { return false; } Map<Character,Character> pairs=new HashMap<Character,Character>(){{ put(')','('); put(']','['); put('}','{'); }} Deque<Character> stack=new LinkedList<Character>{}; for(int i=0;i<n;i++){ char ch=s.charAt(i); if(pairs.containsKey(ch)){ if(stack.isEmpty()||stack.peek()!=pairs.get(ch)){ return false; } stack.pop(); }else{ stack.push(ch); } } return stack.isEmpty; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询