Valid Parentheses
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.
图解
分析
- use i to scan every characer of string
- when it comes to left parentheses, we push it into Stack. Otherwise, it comes to right parentheses. We pop left one from Stack , checking whether they are valid brackets.
- we use try, catch because
代码
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(int i = 0; i< s.length(); i++){
char c = s.charAt(i);
if(c == '(' ||c == '{' ||c == '[' ){
stack.push(c);
}else{
try {
char top = stack.pop();
if (!(( c == ')' && top =='(' )
||(c == '}' && top =='{' )
||(c == ']' && top =='[' ))){
return false;
}
}catch (Exception e){return false;}
}
}
return stack.isEmpty();
}
}