跳转至

📌 20. 有效的括号

栈,先进后出

  1. 使用Stack类,继承自Vector类,提供了栈的基本操作方法
  2. 使用Deque接口(双端队列),提供了栈的操作方法,推荐使用ArrayDeque
  3. 使用LinkedList类,提供了pushpop方法

python的话使用list即可

class Solution {
    public static boolean isValid(String s) {
        if (s.length() < 2) return false;
        LinkedList<Character> stack = new LinkedList<>();
        for (char c : s.toCharArray()) {
            switch (c) {
                case '(':
                    stack.push(')');
                    break;
                case '{':
                    stack.push('}');
                    break;
                case '[':
                    stack.push(']');
                    break;
                default:
                    // stack.peek();  // 查看栈顶元素而不修改
                    if (stack.isEmpty() || stack.pop() != c) {
                        return false;
                    }
            }
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
//        String s = "(";
//        String s = "(()";
        String s = "){";
        System.out.println(isValid(s));
    }
}