LeetCode之Valid Parentheses
1、题目
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
2、思路
用stack来实现,左边的进栈,如果是右边的出栈,发现没有或者不匹配就返回false
3、代码实现
public class Solution {
public boolean isValid(String s) {
if (s == null || s.length() == 0) {
return false;
}
char chars[] = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < chars.length; ++i) {
if (chars[i] == '(' || chars[i] == '{' || chars[i] == '[') {
stack.add(chars[i]);
} else {
if (!stack.isEmpty()) {
Character value = stack.pop();
if (chars[i] == ')') {
if (value != '(')
return false;
}
if (chars[i] == '}') {
if (value != '{')
return false;
}
if (chars[i] == ']') {
if (value != '[')
return false;
}
} else {
return false;
}
}
}
return stack.isEmpty();
}
}
赞 (0)