题目链接
菜鸟做法
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
string a;
cin>>n;
while(n--){
cin>>a;
int x=0,y=0,z=0;
int flag=0;
int ifout=0;
for(int i=0;i<a.length();i++){
if(a[i]=='P'&&flag==0){
flag=1;
continue;
}else if(a[i]=='T'&&flag==1){
flag=2;
continue;
}
if(a[i]!='A'){
ifout=1;
break;
}else{
if(flag==0){
x++;
}else if(flag==1){
y++;
}else{
z++;
}
}
}
if(x*y==z&&y!=0&&ifout!=1&&flag==2){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}
大佬做法
#include <iostream>
#include <map>
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]]++;
if (s[j] == 'P') p = j;
if (s[j] == 'T') t = j;
}
if (m['P'] == 1 && m['A'] != 0 && m['T'] == 1 && m.size() == 3 && t-p != 1 && p * (t-p-1) == s.length()-t-1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}