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 }