01有效的括号

有效的括号

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

有效字符串需满足:

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

示例 1:

输入:s = “()”

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = “(]”

输出:false

示例 4:

输入:s = “([])”

输出:true

示例 5:

输入:s = “([)]”

输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
public boolean isValid(String s) {
  char[] charArray = s.toCharArray();
  Map<Character,Character> map = new HashMap<>(){{
    put('}','{');
    put(')','(');
    put(']','[');
  }};
  Deque<Character> stack = new LinkedList<>();
  for (char c : charArray) {
    if(map.containsKey(c)){
      if(stack.isEmpty()){
        return false;
      }
      if (!stack.pollFirst().equals(map.get(c))) {
        return false;
      }
    }else{
      stack.offerFirst(c);
    }
  }

  return stack.isEmpty();

}

01有效的括号
https://jiajun.xyz/2026/02/23/算法/12栈/01有效的括号/
作者
Lambda
发布于
2026年2月23日
许可协议