import java.util.*;

public class ChkExpression {
    public boolean chkLegal(String A) {
        Stack<Character> stack = new Stack<>();

        for (char c : A.toCharArray()) {
            if (c == ')' && !stack.isEmpty() && stack.peek() == '(') {
                stack.pop();
            } else if (c == ']' && !stack.isEmpty() && stack.peek() == '[') {
                stack.pop();
            } else if (c == '}' && !stack.isEmpty() && stack.peek() == '{') {
                stack.pop();
            } else if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            }
        }

        return stack.isEmpty();
    }
}

这道题目看着是表达式的问题, 其实本质上还是stack的解决方案