一直都搞错了题目的意思,后来看了网上的解析,才知道原来题目是要aPbTc满足len(a)*len(b)=len(c).
int main()
{
int n;
cin >> n; //使用cin,首先去掉输入的空格,避免之后判断该情况
while (n--)
{
string s;
cin >> s;
size_t p = s.find_first_not_of("A");
if ((p == string::npos) || (s[p] != 'P')) //首先找到第一个不是A的位置,如果不是P或者没找到,不通过
{
cout << "NO" << endl;
continue;
}
size_t t = s.find_first_not_of("A", p + 1);
if ((t == string::npos) || (t == p + 1) || (s[t] != 'T')) //找出P后下一个不是A的位置,如果不是T或者就是P下一位或者没找到,不通过
{
cout << "NO" << endl;
continue;
}
size_t n = s.find_first_not_of("A", t + 1);
if (n != string::npos) //找出T后下一个不是A的位置,如果没找到,不通过
{
cout << "NO" << endl;
continue;
}
if ((s.length() - t - 1) == p * (t - p - 1)) //如果不满足len(a)*len(b)=len(c),不通过
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}