20.有效的括号
代码
public boolean isValid(String s) {
if (s == null || s.length() == 0) return true;
if (s.length() % 2 != 0) return false;
//栈
Stack<Character> stack = new Stack();
char ch;
for (int i = 0;i < s.length();i++){
ch = s.charAt(i);
if (ch == '{' || ch == '[' || ch == '('){
stack.push(ch);
}else{
if (stack.isEmpty() || matching(ch) != stack.pop())
return false;
}
}
return stack.isEmpty();
}
private char matching(char ch){
if (ch == '}')
return '{';
else if (ch == ']')
return '[';
else
return '(';
}