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的解决方案