![image.png](/uploads/projects/tianye-xqjdt@wt9ntl/e28e5873fa521e3d6057a874edb4cbaf.png)
public static boolean isValid(String s) {
if (StringUtils.isEmpty(s)) {
return false;
}
char[] chars = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
for (char c : chars) {
if (stack.isEmpty()) {
stack.push(c);
}else {
if (match(stack.peek(), c)) {
stack.pop();
} else {
stack.push(c);
}
}
}
return stack.isEmpty();
}
private static boolean match(char a, char b) {
if (a == '[' && b == ']') {
return true;
}
if (a == '(' && b == ')') {
return true;
}
if (a == '{' && b == '}') {
return true;
}
return false;
}