主要理解的难点是在第3个条件
假设左边A的数量为a,中间的为b,右边的为c,满足a*b=c这个条件的为正确的
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
char word[n][110];
int i;
for(i=0;i<n;i++)
{
scanf("%s",word[i]);
}
for(i=0;i<n;i++)
{
if(strchr(word[i],'P')==NULL||strchr(word[i],'A')==NULL||strchr(word[i],'T')==NULL)
{
printf("NO\n");
// printf("%s",word[i]);
}
else
{
int j=0;
int cnt1=0,cnt2=0,cnt3=0,cnt4=0;
while(word[i][j]!='\0')
{
if(word[i][j]=='P'||word[i][j]=='A'||word[i][j]=='T')
{
cnt4++;
}
j++;
}
if(strlen(word[i])>cnt4)
{
printf("NO\n");
}
else
{
j=0;
while(word[i][j]!='P')
{
cnt1++;
j++;
}
++j;
while(word[i][j]!='T')
{
cnt2++;
j++;
}
++j;
while(word[i][j]!='\0')
{
cnt3++;
j++;
}
if(cnt1*cnt2==cnt3)
{
printf("YES\n");
}else
{
printf("NO\n");
}
}
}
}
}