总结:要理清楚题目中给出的条件
- 只有PAT字母,含有别的字母的全错;
- 根据题目中给出的例子 得到二 种情况 (1)P前面没有A(2)P前面有A的 如果存在A,则符合 P前面A的个数*P和T之间A的个数=T后面A的个数;
- 要注意P 和T之间是否有A;
#include<stdio.h> #include<string.h> int main(){ char s[100]; int n,pos_p,pos_t,count_p,count_a,count_t; scanf("%d\n",&n); while(n--){ pos_p=pos_t=count_p=count_a=count_t=0; gets(s); for(int i=0;i<strlen(s);i++) { if(s[i]=='P'){ count_p++; pos_p=i; }else if(s[i]=='A'){ count_a++; }else if(s[i]=='T'){ count_t++; pos_t=i; } } if(count_p+count_a+count_t<strlen(s)||count_p>1||count_t>1||pos_p*(pos_t-pos_p-1)!=strlen(s)-pos_t-1||pos_t-pos_p<=1) printf("NO\n"); else printf("YES\n"); } return 0; }