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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
输入:s = "()"
输出:true
输入:s = "()[]{}"
输出:true
输入:s = "(]"
输出:false
输入:s = "{[]}"
输出:true

解题思路:使用栈,遍历数组,若是判断为左括号则压入相应的右括号,若判断为右括号则弹出栈,若不相同则return false。
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<Character>();
        for(char a:s.toCharArray()){
            if(a=='('){stack.push(')');}
            else if(a=='{'){stack.push('}');}
            else if(a=='['){stack.push(']');}
            else{
                if(stack.empty()||a!=stack.pop()){
                    return false;
                }
            }
        }
        return stack.empty();
    }
}

知识点:

1、Character为字符串类。
2、Stack的方法:push()压入,pop()弹出。