1003. 我要通过!(20)

题目链接:https://www.patest.cn/contests/pat-b-practise/1003

 1 #include<stdio.h>    //考虑三种情况。 
 2 #include<string.h>
 3 void judge(char a[101])
 4 {
 5     int l=strlen(a);
 6     if((l-3)%2==0)
 7     {
 8         int i=0,ll=l; 
 9         while(1)
10         {
11             if(a[i]=='A'&&a[l-i-1]=='A'&&ll>3)
12                ll-=2,i+=1;
13             else if(ll==3&&a[i]=='P'&&a[i+1]=='A'&&a[i+2]=='T')
14             {
15                printf("YES\n");
16                break;
17             }
18             else 
19             { 
20                printf("NO\n");
21                break;
22             }
23         }
24     }
25     else if((l-4)%3==0)
26     {
27         if(l==4&&a[0]=='P'&&a[1]=='A'&&a[2]=='A'&&a[3]=='T')printf("YES\n");
28         else 
29         {
30             int i;
31             for(i=0;i<(l-4)/3;i++)
32             {
33                 if(a[i]=='A'&& a[i+(l-4)/3+4]=='A'&&a[i+2*(l-4)/3+4]=='A');
34                 else break;
35             }
36             if(i==(l-4)/3&&a[0+i]=='P'&&a[1+i]=='A'&&a[2+i]=='A'&&a[3+i]=='T')printf("YES\n");
37             else printf("NO\n");
38         }
39     }    
40     else printf("NO\n");    
41 }
42 int main()
43 {
44     int n;
45     char str[10][101];
46     scanf("%d",&n);
47     for(int i=0;i<n;i++) scanf("%s",str[i]);
48     for(int i=0;i<n;i++) judge(str[i]); 
49     return 0;
50 }

 

posted @ 2018-01-16 16:54  爱你的笑  阅读(100)  评论(0编辑  收藏  举报