南阳理工括号配对问题,已经AC的了。
这是我的代码。
#include<stdio.h>
#include<string.h>
char str[10001]={0};
int i=0;
void chack(int k,char s2){
if((s2==']'&&str[k-1]=='[')||(s2==')'&&str[k-1]=='(')){
str[k-1]=0;//'\0'表示字符串结尾,是一个转移字符,实际上他的数值是0,所以在出现'\0'的地方你都可以用0代替.
i=i-1;
}
else{
str[k]=s2;i++;
}
}
void check(char *s){
for(;*s!='\0';s++)
{
if(*s=='['||*s=='('||str[0]==0){
str[i]=*s;i++;
// printf("%s\n",str);
}
else chack(i,*s);
}
if(strcmp(str,"")==0)printf("Yes\n");
else printf("No\n");
}
int main(){
int n;
char s[10001];
scanf("%d",&n);
while(n--){
scanf("%s",s);
check(s);
memset(str,0,sizeof(char)*10001);
i=0;
}
return 0;
}