思路:本题主要是对栈的考察,运用栈先进后出的性质,遇到左括号就入栈,遇到右括号就与栈顶配对,成功则出栈;失败则输出false。
class Solution{
public boolean isValid(String s){
Stack stack=new Stack();
char[] sArray=s.toCharArray();//将字符串转变为字符数组
//循环配对
for (char c : sArray){
if(c=='('||c=='{'||c=='['){
stack.push(c); //入栈
continue;
}
//当没有符号入栈时,表示当前符号是右括号,直接输出false
if(stack.isEmpty()){
return false;
}
//将栈顶元素转换为char类型
char top= (char) stack.peek();
if(c=='}'&&top=='{'){
stack.pop();//出栈
continue;
}
if(c==']'&&top=='['){
stack.pop();
continue;
}
if(c==')'&&top=='('){
stack.pop();
continue;
}
return false;
}
//循环结束
if(stack.isEmpty()){
return true;
}
else {
return false;
}
}
}
```