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

京公网安备 11010502036488号