解题思路:我也不太懂第三种正确的情况,所以我借鉴了柳诺的代码才理解,感觉这题难在题目理解上
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
string s;
int t,j;
cin>>s;
map<char,int>mp;
for(int i=0;i<s.size();i++){
mp[s[i]]++;
if(s[i]=='P')
t=i;
if(s[i]=='T')
j=i;
}
if(mp.size()==3&&mp['P']==1&&mp['T']==1&&(j-t!=1)&&t*(j-t-1)==(s.size()-1-j))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
运行结果: