题干
讲解
这个题目可以记住使用栈,知道了使用栈,就可以不停的判断括号是不是匹配,最后栈不为空,就是不闭合,为空就是闭合
题解
/**
* 这里先用hash表存一下({[代码就不会显得这么蠢
* 这样写比较容易懂,将就一下吧
*/
public boolean isValid(String s) {
if(s.length()%2 != 0){
return false;
}
Stack<String> stringStack = new Stack<String>();
String[] strings = s.split("");
if("}".equals(strings[0]) || "]".equals(strings[0]) || ")".equals(strings[0])){
return false;
}
for(String l : strings){
if(stringStack.isEmpty()){
stringStack.push(l);
}else{
if(("}".equals(l) && "{".equals(stringStack.peek()))
|| ("]".equals(l) && "[".equals(stringStack.peek()))
|| (")".equals(l) && "(".equals(stringStack.peek()))){
stringStack.pop();
}else{
stringStack.push(l);
}
}
}
return stringStack.isEmpty();
}