力扣上给了3个用例,每次都是只能通过第3个,哪里出了问题
class Solution {
public boolean isValid(String s) {
int[] a=new int[s.length()];
int[] b=new int[s.length()];
if(s.length()%2==1||s.charAt(0)==')'||s.charAt(0)==']'||s.charAt(0)=='}') return false;
for(int i=0;i<s.length();i++){
switch(s.charAt(i)){
case '(': a[i]=1;
case '[': a[i]=2;
case '{': a[i]=3;
case ')': a[i]=-1;
case ']': a[i]=-2;
case '}': a[i]=-3;
}
}
for(int i=0,j=0;i<s.length();i++){
if(a[i]>0) {
++j;
b[j]=a[i]; //入栈
}
else if(a[i]+b[j]==0) --j; //若匹配,出栈
else if(a[i]+b[j]!=0) return false; //不匹配,返回false
}
return true;
}
}