bool isValid(char * s){
char a[10000];
int top,i,j;
char n,m;
for(i=0;i<10000;i++) a[i]=0;//初始化
top=-1;//栈空top=-1
j=0;
for(i=0;s[i]!='\0';i++){
switch(s[i]){
case '(': ;
case '{': ;
case '[':
a[j]=s[i];
top++;
j++;
break;
case '}': ;
case ']': ;
case ')':
if(top==-1)
return false;
else {
if(s[i]-a[top]==1||s[i]-a[top]==2){
top--;
}else return false;
}
}
}
if(top==-1){
return true;
}else return false;
}
我直接用的栈并没有使用函数,我判定匹配的方法是ascii码,()差1,[]和{}差2
原题就是LeetCode20题
求大佬告诉哪错了