import java.util.*; public class Solution { public boolean isValid (String s) { // 预处理 if (s.length() == 0) return true; if (s.length() % 2 == 1) return false; // 初始化 Stack<Character> stack = new Stack<>(); // 遍历字符串 for (char c : s.toCharArray()) { switch (c) { case '(': stack.push(')'); // 期望匹配右小括号 break; case '[': stack.push(']'); // 期望匹配右中括号 break; case '{': stack.push('}'); // 期望匹配右大括号 break; default: if (stack.isEmpty() || stack.pop() != c) return false; } } // 遍历结束 // 此时栈空则合法 return stack.isEmpty(); } }