马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
<p>#include <stdio.h>
int main()
{
int n,i,j,k,num,n1,n2;
char s[10000],a[10000],b[10000],c[10000];
scanf("%d",&n);
fflush(stdin);
if(n<=0||n>100)
{
n=0;
}
n1=n;
while(n--)
{
n2=1;
gets(s);
if(s[0]=='\0')
{
n2=0;
c[n]='0';
}
if(n2==1)
{
for(i=0,j=0;s[i]!='\0';i++,j++)
{
if(s[i]=='[')
{
a[j]='[';
}
else if(s[i]==']')
{
a[j]=']';
}
else if(s[i]=='(')
{
a[j]='(';
}
else if(s[i]==')')
{
a[j]=')';
}
else
{
j -=1;
}
}
a[j]='\0';
num=j;
while(a[0]!='\0'&&num--)
{
for(i=0;a[i-1]!='\0';i++)
{
if(a[i]=='['&&a[i+1]==']'||a[i]=='('&&a[i+1]==')')
{
a[i]='0';
a[i+1]='0';
}
}
for(i=0,k=0;a[i]!='\0';i++,k++)
{
if(a[i]=='[')
{
b[k]='[';
}
else if(a[i]==']')
{
b[k]=']';
}
else if(a[i]=='(')
{
b[k]='(';
}
else if(a[i]==')')
{
b[k]=')';
}
else
{
k-=1;
}
}
b[k]='\0';
for(i=0;i<=k;i++)
{
a[i]=b[i];
}
}
if(a[0]=='\0')
{
c[n]='1';
}
else
{
c[n]='0';
}
}
}
for(i=n1-1;i>=0;i--)
{
if(c[i]=='1')
{
printf("Yes\n");
}
else if(c[i]=='0')
{
printf("No\n");
}
}
return 0;
}</p><p>今天看了下acm一道括号配对的问题,就是让[ ] 和()配对。就写了一个,但是每次上传就说是结果错误。但感觉写没有错误呀,求大神指点.... </p>
|