class Solution {
public boolean isValid(String s) {
//准备栈来存储左括号字符
Stack<Character> stack = new Stack<>();
//将字符串转为字符数组
char[] array = s.toCharArray();
for(int i=0;i<array.length;i++){
//将左字符压入栈中
if(array[i]=='('||array[i]=='['||array[i]=='{'){
stack.push(array[i]);
}else {
//判断如果还有右字符,但栈已经为空,则匹配失败
if(stack.empty()){
return false;
}
//获取栈顶元素
char e = stack.pop();
//排除匹配失败情况
if((e=='('&&array[i]!=')')||(e=='['&&array[i]!=']')||(e=='{'&&array[i]!='}')) return false;
}
}
//排除单个字符情况
if(!stack.empty()){
return false;
}
return true;
}
}