#include<iostream>#include<string>#include<map>usingnamespacestd;
intmain(){
int n;
int p, t;//记录p的位置,记录t的位置,第一个字符从1开始计算cin >> n;
string s; //要验证的字符串while (n--) {
map<char, int> res;
p = t = 0;
cin >> s;
for (int i = 0; i < s.size(); i++) {
res[s[i]]++;
if (s[i] == 'P')
p = i + 1;
if (s[i] == 'T')
t = i + 1;
}
//判断条件,map中必须且只有PAT三种字符,P和T的字符个数都是1//(P左面的A的个数)*(P和T之间A的个数)=(T右面的A的个数)if (res.size() == 3 && res['A'] != 0 && res['P'] == 1 && res['T'] == 1 && (p - 1)*(t - p - 1) == (res['A'] + 2 - t)) {
cout << "YES" << endl;
}
elsecout << "NO" << endl;
}
}
python3代码
n = input()
n=int(n)
for i in range(n):
s = input()
res = {}
p = 0
t = 0for j in range(len(s)):
if(s[j] notin res.keys()):
res[s[j]] = 0
res[s[j]] = res[s[j]]+1if(s[j] is'P'):
p = j+1if(s[j] is'T'):
t = j+1if(len(res) == 3and res['A']!=0and res['P'] == 1and res['T']==1and (p-1)*(t-p-1)==(res['A'] + 2 - t)):
print('YES')
else:
print('NO')