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 Solution 1:
class Solution {
public boolean isValid(String s) {
if(s.length()<=1) return false;
Stack<Character> paraS = new Stack<Character>();
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='('||s.charAt(i)=='{'||s.charAt(i)=='['){
paraS.push(s.charAt(i));
}else if(s.charAt(i)==')'){
if(paraS.size()==0 || paraS.pop()!= '(') return false;
}else if(s.charAt(i)==']'){
if(paraS.size()==0 || paraS.pop()!= '[') return false;
}else if(s.charAt(i)=='}'){
if(paraS.size()==0 || paraS.pop()!= '{') return false;
}
}
return paraS.isEmpty();
}
}