写个数组当作栈用就行了。
bool isValid(char* s) {
int t[100000]={0};
int top=0;
int flag=1;
for(int i=0;i<strlen(s);i++){
if(s[i]=='('){
t[top++]=1;
}else if(s[i]=='{'){
t[top++]=2;
}else if(s[i]=='['){
t[top++]=3;
}else if(s[i]==')'){
if(top==0||t[top-1]!=1){
flag=0;
break;
}
top--;
}else if(s[i]=='}'){
if(top==0||t[top-1]!=2){
flag=0;
break;
}
top--;
}else if(s[i]==']'){
if(top==0||t[top-1]!=3){
flag=0;
break;
}
top--;
}
}
if(top!=0) flag=0;
if(flag){
return true;
}else{
return false;
}
}
结果;
标签:20,有效,int,isValid,top,括号,flag From: https://www.cnblogs.com/llllmz/p/17972638