import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid(String s) {
        // write code here
        if (s == null || s == "") {
            return true;
        }

        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(' || c == '{' || c == '[') {
                stack.push(c);
            } else {
                if (stack.isEmpty()){
                    return false;
                }

                char pop = stack.pop();
                if ((pop == '(' && c != ')')
                        || (pop == '{' && c != '}')
                        || (pop == '[' && c != ']')) {
                    return false;
                }
            }
        }

        return stack.isEmpty();
    }
}