#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int n;
char str[100]; //尽量定义大一点,不然有测试点过不了
scanf("%d",&n);
while(n--){
scanf("%s",str);
int np=0,nt=0,na=0; //p数量,t数量,a数量
int pre=0,mid=0,aft=0; //前面,中间,后面a的数量
int flag=0; //判断是否有非法字符
for(int i=0;i<strlen(str);i++){ //遍历
switch (str[i]){
case 'P':pre=i;np++;break; //前面a的数量和p的数量
case 'T':mid=i-pre-1;nt++;break; //中间a的数量和t的数量
case 'A':na++;break; //a的数量
default:flag=1; //遇见非法字符直接flag=1
}
if(flag==1)
break; //非法字符break
}
if(flag==1)
printf("NO\n");
else if(np==1&&nt==1&&na&&mid&&(pre*mid==na-pre-mid)) //p和t个数都要为1并且p和t之间一定要有a,前面a的数量与中间a的数量相乘要等与后面a的数量
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
1.数组要定的大一点
2.开始我还设置了变量记录p和t的数量,后面发现没必要,可以换个思路求a的数量
3.通过样例找规律