20. 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.
Subscribe to see which companies asked this question.
2、解析与方法分析
这道题十分的简单,题意是给你一个字符串,判断其是不是有效的(就是最近的两个符号是否对应)。这道题就
是简单的一个使用Stack。就不仔细分析了。
3、代码实现
public class Solution {
private boolean isTrue(char a, char b) {
if ((a == '[' && b == ']') || (b == '[' && a == ']')) {
return true;
} else if ((a == '(' && b == ')') || (b == '(' && a == ')')) {
return true;
} else if ((a == '{' && b == '}') || (b == '{' && a == '}')) {
return true;
} else {
return false;
}
}
public boolean isValid(String s) {
char[] str = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < str.length; i++) {
if (stack.empty()) {
stack.push(str[i]);
} else {
if (isTrue(stack.peek(), str[i])) {
stack.pop();
} else {
stack.push(str[i]);
}
}
}
if (stack.empty()) {
return true;
} else {
return false;
}
}
}