1. 题目介绍
2. 具体代码实现
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(){
int n;
string s;
cin>>n;
while(getchar()!='\n');
for(int i=0;i<n;i++){
getline(cin,s); //如果使用cin输入字符串,遇到空格即结束;使用getline可以输入一行
map<char,int> m; //用map统计P,A,T各出现的次数
int p=0,t=0;
for(int j=0;j<s.length();j++){
m[s[j]]++;
if(s[j]=='P')
p=j; //记录P的位置
if(s[j]=='T')
t=j; //记录T的位置
}
if(m.size()==3&&m['P']==1&&m['T']==1&&t-p>1&&p*(t-p-1)==s.length()-t-1) //字符串中只有P,A,T三种字符&&P出现一次&&T出现一次&&P,T中间至少有一个A&&(P前面的A)*(P,T中间的A)=T后面的A个数
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}