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.
Analysis: 经典的括号系列的题目,如果出现判断是否valid, 记着用Stack哈
public class Solution {
public boolean isValid(String s) {
int length = s.length();
char[] sToArray = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
for(int i = 0; i < length; i++){
if(sToArray[i] == '{' || sToArray[i] == '(' || sToArray[i] == '['){
stack.push(sToArray[i]);
}
else{
if(stack.isEmpty())
return false;
char tem = (char)stack.pop();
if (!match(tem, sToArray[i]))
return false;
}
}
return stack.isEmpty();
}
public boolean match(char a, char b){
if(b == '}' && a == '{')
return true;
if(b == ']' && a == '[')
return true;
if(b == ')' && a == '(')
return true;
return false;
}
}