
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; }