从左往右查看,A的个数在三种条件下才通过:
1、(a,1,a)
2、(a,1+i,a+a*i)
3、a>0
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
string st;
cin>>n;
while(n--)
{
cin>>st;
int a=st.find_first_not_of("A");
if( (a==string::npos) || (st[a]!='P') )
{cout<<"NO\n";continue;}
int b=st.find_first_not_of("A",a+1);
if( (b==string::npos) || (st[b]!='T') || ((a+1)==b) )
{cout<<"NO\n";continue;}
if(st.find_first_not_of("A",b+1)!=string::npos)
{cout<<"NO\n";continue;}
if( a*(b-1-a)==(st.size()-b-1) )
cout<<"YES\n";
else cout<<"NO\n";
}
return 0;}