分析:
这题目算得上题库里较难读懂的了
只能有一个P一个T,中间末尾和开头可以随便插入A。但是必须满足开头的A的个数 × 中间的A的个数 = 结尾的A的个数,而且P和T中间必须要有A
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,p=0,t=0;
string s;
cin>>n;
for(int i=0;i<n;i++){
cin>>s;
map<char,int> m;
for(int j=0;j<s.size();j++){
m[s[j]]++;//字符s[j]出现频次加一
if(s[j]=='P')
p=j;//记录字符P的下标
if(s[j]=='T')
t=j;//记录字符T的下标
}
if(m['P']==1 && m['A']!=0 && m['T']==1 && m.size()==3 && t-p!=1 && p*(t-p-1)==s.length()-t-1)//这里的t-p!=1可以省略
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}