20. 有效的括号 leetcode-hot100

56 阅读1分钟

image.png

方法:栈

class Solution { // 通过栈的出入来寻找配对的符号
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack();
        //字符个数为单数返回错误
        if (s.length() % 2 != 0) return false;
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            //栈为空不匹配直接进栈
            if (stack.isEmpty()) stack.push(ch);
            else if ((ch == ')' && stack.peek() == '(') || (ch == '}' && stack.peek() == '{') || (ch == ']' && stack.peek() == '[')) stack.pop();
            else stack.push(ch);
        }
        return stack.isEmpty();
    }
}