请问pta乙级1003题的这部分代码逻辑是哪错了呢,
num_pa是p之前的a的个数)
num_pt是中间的个数
num_aa是t之后a的个数
#include <stdio.h>
#include <string.h>
#include <string>
using namespace std;
int main() {
int n;
int num_pa=0,num_pt=0,num_aa=0;
int p_num=0,t_num=0;
char str[100];
int flag=0;
scanf("%d",&n);
for(int j=0;j<n;j++){
scanf("%s",str);
for (int i = 0; i < strlen(str); i++) { //遍历
if(str[i]=='P'){
p_num++;
if(p_num>1){
flag=1;
break;
}
}else if(str[i]=='T'){
t_num++;
if(t_num>1|| ( p_num== 0)){
flag=1;
break;
}
}else if(str[i]=='A'){
if(p_num==0){
num_pa++;
}else if(t_num==0){
num_pt++;
}else{
num_aa++;
}
}else{
flag=1;
break;
}
}
if(num_pt*num_pa!=num_aa){
flag=1;
}
if((num_pt == 0)||(p_num!=1)||(t_num!=1)){
flag=1;
}
if(num_pt*num_pa==num_aa){
puts("YES");
}
if(flag==1){
puts("NO");
}
}
}