1. 判断字符串为空或由空格、tab等组成
  2. new Character组成的Stack对象
  3. 遍历字符串,switch判断将第i个值将"(" "{" "[" 压栈,判断")" "}" "]"分别判断stack为空或取值不match返回false,满足条件的则执行出栈
  4. 最后判断stack是否为空
public static boolean isValid(String s){
    if(s.trim().isEmpty(){
     return false; 
    }
    
    Stack<Character> stk = new Stack<Character>();
       
    for(int i = 0; i < s.length(); i++){
      
        char item = s.charAt(i);
      
    	switch(item){
            
          case '(': case '[': case '{':
            stk.push(item);
            break;
            
          case ')':
            if(stk.isEmpty() || stk.peek() != '('){
            	return false; 
            }
            stk.pop();
            break;
            
          case ']':
            if(stk.isEmpty() || stk.peek() != '['){
            	return false; 
            }
            stk.pop();
            break;
            
          case '}':
            if(stk.isEmpty() || stk.peek() != '{'){
            	return false; 
            }
            stk.pop();
            break;
        }
    }
     return stk.isEmpty();  
}