思路:
1.利用栈,遇到 (、[、{ 就往栈中存入 )、]、} ,如果不是这三个字符,那么如果栈是空的,那当前字符就不能被匹配了。例如(、[、{、}、]、)、] ,最后一个导致不是有效序列了
2.如果栈不是空的,那么栈中弹出的元素必须要和当前遍历的相等。"([)]" 是不合法的,必须是"()[]{}" 类似这种,没有嵌套,或者嵌套是([])

import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        if(s == null){
            return false;
        }
        Stack<Character> temp = new Stack<>();
        for(Character ch : s.toCharArray()){
            if(ch == '('){
                temp.push(')');
            }else if(ch == '{'){
                temp.push('}');
            }else if(ch == '['){
                temp.push(']');
            }else if(temp.isEmpty() || temp.pop() != ch){
                return false;
            }
        }
        return temp.isEmpty();
    }
}