import java.util.*;
import java.lang.String;
import java.util.Stack;
public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        if(s==null||s.length()==0)
        {
            return false;
        }
        Stack<Character> str=new Stack<Character>();
        for(int i=0;i<s.length();i++)
        {
            if(s.charAt(i)=='(')//若'(',则‘)’入栈
            {
                str.push(')');
            }else if(s.charAt(i)=='[')
            {
                str.push(']');
            }else if(s.charAt(i)=='{')
            {
                str.push('}');
            }else if(str.isEmpty()||str.pop()!=s.charAt(i)) //判断出栈元素和s是否相等
            {
                return false;
            }
        }
        return str.isEmpty();
    }
}