20. Valid Parentheses
Description
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
1.Open brackets must be closed by the same type of brackets.
2.Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example
Example:
Input: "()"
Output: true
Input: "()[]{}"
Output: true
Input: "(]"
Output: false
Input: "([)]"
Output: false
Input: "{[]}"
Output: true
Solution: (Java)
class Solution {
public boolean isValid(String s) {
if (s.equals(""))
return true;
Stack<Character>left = new Stack<>();
char c, top;
for (int i = 0; i < s.length(); i++) {
c = s.charAt(i);
if (c == '(' || c == '[' || c == '{') {
left.push(c);
} else {
if (!left.empty()) {
top = left.peek();
if ((c == ')' && top == '(') || (c == ']' && top == '[') || (c == '}' && top == '{')) {
left.pop();
} else
return false;
} else {
return false;
}
}
}
return left.empty();
}
}
思路
本题使用 栈(Stack
)就可以了,左括号入栈,右括号出栈,需要注意的是 Stack
不为空时,才可以调用stack.peek()
取得栈顶元素。