Valid Parentheses
错误:注意在循环内检查stack是否为空
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()){
if(c == '(' || c =='[' || c =='{'){
stack.push(c);
continue;
}
if(stack.isEmpty() ||transfer(c) != stack.peek() ){
return false;
}else if(!stack.isEmpty()){
stack.pop();
}
}
return stack.isEmpty();
}
public char transfer(Character c){
if(c == ']')
return '[';
else if(c == '}'){
return '{';
}
else if(c == ')'){
return '(';
}else{
return '\0';
}
}
}
public boolean isValidParentheses(String s) {
// Write your code here
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
}
if (c == ')') {
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
}
if (c == ']') {
if (stack.isEmpty() || stack.pop() != '[') {
return false;
}
}
if (c == '}') {
if (stack.isEmpty() || stack.pop() != '{') {
return false;
}
}
}
return stack.isEmpty();
}
Last updated