import java.util.*;


public class Solution {
    
    public boolean isValid (String s) {
        // write code here
        if(s.length()<2){
            return false;
        }
        //遍历字符串遇到左括号等等将它对应的右括号加入栈,遇到右括号
        // 判断是否是一致是的话出栈
    
        Stack<Character> stack1 = new Stack();
       
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)=='('){
                stack1.add(')');
            }else if(s.charAt(i)=='{') {
                stack1.add('}');
                
            }else if(s.charAt(i)=='['){
                stack1.add(']');
            }else if(!stack1.empty()&&s.charAt(i)==stack1.peek()){
                //当不为空并且遇到右括号时判断栈顶元素是否相同
                // 相同弹出即可
                stack1.pop();
            }else if(stack1.empty()){
                //如果此时栈为空且没有遇到左边的说明不符和
                return false;
               

            }

        }

        // 最后判断栈是否为空
        if(stack1.empty()){
            return true;
        }else{
             return false;
        }
                                              
       
    }
}