|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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>
复制代码
|
|