今天在南阳理工学院的在线ACM测试上做了一道题,简直弱爆了。。。请看原题:
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes
我的解:
#include <stdio.h>
#include <string.h>
int Peidui(char *p)
{
int xx,yy;
char *ptmp;
ptmp=p;
while( *ptmp !='\0')
{
xx=yy=0;
if( *ptmp == '(' )
{
xx=1;
}
else if( *ptmp == '[')
{
yy=1;
}
else return -1;
if(xx)
{
while((*(++ptmp) !='\0') && (xx != 0))
{
if(*ptmp == '(')
xx++;
if(*ptmp == '[')
yy++;
if(*ptmp == ')')
{
xx--;
if(xx<0)
return -1;
}
if(*ptmp == ']')
{
yy--;
if(yy<0)
return -1;
}
}
if(yy)
{
return -1;
}
}
if(yy)
{
while((*(++ptmp) !='\0')&&(yy != 0))
{
if(*ptmp == '(')
xx++;
if(*ptmp == '[')
yy++;
if(*ptmp == ')')
{
xx--;
if(xx<0)
return -1;
}
if(*ptmp == ']')
{
yy--;
if(yy<0)
return -1;
}
}
if(xx)
{
return -1;
}
}
}
return 0;
}
int main()
{
int testNum,res,i=0,j=0;
int x=0,y=0,len;
char testData[10010];
scanf("%d",&testNum);
if((testNum<=0) || (testNum>100))
return 0;
for(i=0;i<testNum;i++)
{
scanf("%s",testData);
len=strlen(testData);
if((len>=10000) && (len==0))
{
i--;
continue;
}
j=0;
while(testData[j] !='\0')
{
switch(testData[j])
{
case '(':x++;break;
case ')':x--;break;
case '[':y++;break;
case ']':y--;break;
//default:return 0;
}
j++;
}
if(x==0 && y==0)
{
res=Peidui(testData);
if(res==0)
printf("Yes\n");
else
printf("No\n");
}
else
printf("No\n");
x=y=0;
}
return 0;
}
大家如果有兴趣,可以去这个网站打发一下时间。也挺有趣的。http://acm.nyist.net/JudgeOnline/problemset.php
分享到:
相关推荐
ACM 在线测评第二题,括号配对!表示完全是自己写的,没有参考他人思想!有不足之处请指正!
ACM培训——算法入门---------------------------------算法入门ACM培训——算法入门---------------------------------算法入门ACM培训——算法入门---------------------------------算法入门
ACM培训的第一手资料 对刚入门ACM的人有帮助
2-SAT 经典讲解 ACM必备 2-SAT 经典讲解 ACM必备
ACM关于搜索算法,是一种常用的搜索算法
北大acm在线测试的参考代码,全部都是accpted后的源码,希望对你有帮助
Algorithm-203-ACM-Problems-Code.zip,203个ACM问题的C 源代码,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
HPE6-A70 and A71_ACMA AND ACMP ACMA and ACMP題庫
ACM测试题及测试数据
一些特殊的搜索方式,是ACM中常用的一种算法,在竞赛中经常用到。
资源分类:Python库 所属语言:Python 资源全名:mypy-boto3-acm-1.16.31.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM...
acm-multi-tenancy-dev-team测试:acm-multi-tenancy-dev-team测试
ACM大量习题题库 - 编程小区 ,在线题库
python库。 资源全名:mypy-boto3-acm-pca-1.14.52.0.tar.gz
python库。 资源全名:mypy-boto3-acm-pca-1.11.16.0.tar.gz
ACM模板,较好地利用模板进行运用,很方便
python库。 资源全名:mypy-boto3-acm-1.17.32.0.tar.gz
python库。 资源全名:mypy-boto3-acm-1.11.6.0.tar.gz