import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        Stack<Character> left = new Stack<>();
        for(char c:s.toCharArray()){
            if(c=='{' || c=='(' || c=='['){
                left.push(c);
            }else{
			  //c是右括号
                if(!left.isEmpty() && leftOf(c)==left.peek()){
                    left.pop();
                }else{
				  //和最近的左括号不匹配
                    return false;
                }
            }
        }
	  //是否所有的左括号都被匹配了
        return left.isEmpty();
    }
    char leftOf(char c){
        if(c=='}') return '{';
        if(c==']') return '[';
        return '(';
    }
}