#include<stdio.h>
#include<string.h>
int main(){
int n=0;
char a[101]={0};
char c[10][101] ;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s",&c[i]); //此处,加不加&结果都是一样的,这是为什么呀
}
for(int k=0;k<n;k++)
{
strcpy(a,c[k]);
//wp记录p的位置,wt记录t的位置,mp记录p的个数,mt记录t的个数,amount记录pat以外字符的个数
int wp=0,wt=0,mp=0,mt=0,count=0;
int length=strlen(c[k]);
for(int j=0;j<length;j++){
if(a[j]=='P'){
mp++;
wp=j;
}
if(a[j]=='T'){
mt++;
wt=j;
}
if(a[j]!='P'&&a[j]!='A'&&a[j]!='T')
count++;
}
int center=wt-wp-1;
int later=length-wt-1;
if(mp==1&&mt==1&&count==0&&wp*center==later&&wt-wp>1)
printf("YES\n");
else
printf("N0\n");
}
}
scanf传得必须是指针,也就是地址。
比如int a;就需要&a;
但是如果是数组,数组本身表示的是数组首元素的地址。
也就是int a[10]里a就表示a[0]的地址;
那a[3]的地址呢?可以这样,&a[3];这就是加&的数组,
如果不加呢,可以这样(a+3)就可以了,a是a[0]的地址,那么a+3就是a[3]的地址。