一开始用getchar(),用户体验极差= =。感觉会爆...所以没敢用string读。问了群里的说可以这样读。一次AC。(但是全场比赛只过了这道理,嗨呀好气= = )
然后while语句里本来写的是 ss=ss-4,但是很显然,这是一个死循环。。。然后一开始还纳闷,为啥205020会死循环。。后来马上领悟,6不是4的倍数,所以一减就是负数。。ss!=0,死循环。
1 int main() 2 { 3 string c; 4 int flag4,flag2; 5 int t,j; 6 long long ss; 7 char team[4]={'2','0','5','0'}; 8 while(scanf("%d",&t)!=EOF) 9 { 10 for(int i=1;i<=t;i++) 11 { 12 cin>>c; 13 flag2=0; 14 int p=0; 15 ss=c.length(); 16 if(ss%4==0) 17 { 18 while(ss) 19 { 20 ss=ss-4; 21 if(c[p]==team[p]) 22 p++; 23 if(c[p]==team[p]) 24 p++; 25 if(c[p]==team[p]) 26 p++; 27 if(c[p]==team[p]) 28 p++; 29 // printf("p=%d ",p); 30 if(p==4) 31 { 32 p=0; 33 continue; 34 } 35 if(p!=4) 36 { 37 flag2=1; 38 break; 39 } 40 } 41 if(flag2) 42 { 43 printf("No "); 44 } 45 else{ 46 printf("Yes "); 47 } 48 } 49 else{ 50 printf("No "); 51 } 52 } 53 } 54 return 0; 55 }
这是AC代码,但是我在写的时候就感觉哪里不对了,说明测试数据太水= =。。我的 p没有必要置为0啊。。。
热身赛,其他聚聚的博客: https://blog.csdn.net/xuxiaobo1234/article/details/89228118