问题原始链接 https://leetcode.com/problems/valid-parentheses
给定一个字符串,只包含字符'(',')','{','}','[',']',判断输入字符串是否有效。括号必须已正确的顺序关闭,"()"和"(){}[]"有效,"(]"和"([)]"无效。
public class Solution {
public static boolean isValid(String s) {
if (s == null || s.length() == 0) {
return true;
}
if ((s.length() & 1) == 1) {
return false;
}
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else {
if (stack.isEmpty()) {
return false;
}
char c2 = stack.pop();
if ((c == ')' && c2 != '(') || (c == '}' && c2 != '{')
|| (c == ']' && c2 != '[')) {
return false;
}
}
}
return stack.isEmpty();
}
}