是否是有效括号(使用到栈)

是否是有效括号(使用到栈)_第1张图片

class Solution {
    public boolean isValid(String s) {
        int n = s.length();
        if (n % 2 == 1) {
            return false;
        }

        Map pairs = new HashMap(); 
        pairs.put(')', '(');
        pairs.put(']', '[');
        pairs.put('}', '{');
        
        Stack stack = new Stack();
        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();
    }
}

 

你可能感兴趣的:(栈和队列_new,算法,leetcode,职场和发展)