leetcode:有效括号判断

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

思路:栈的操作

准备进栈的元素和栈顶元素比较

    public boolean isValid(String s) {
        Stack stack = new Stack();
        if (s.equals("")) {
            return true;
        } else {
            char[] arr = s.toCharArray();
            for (char c : arr) {
                if (stack.size() == 0) {
                    stack.push(c);
                } else if (isQ(stack.peek(), c)) {
                    stack.pop();
                } else {
                    stack.push(c);
                }
            }

        }
        return stack.size() == 0;
    }

    private boolean isQ(char c1, char c2) {
        return (c1 == '(' && c2 == ')') || (c1 == '[' && c2 == ']') || (c1 == '{' && c2 == '}');
    }

 

你可能感兴趣的:(leetcode算法)