方法1:
指針
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
getchar();
char s[110];
char* p;
int a,b,c;
int P,T;
while(n--){
scanf("%s",&s);
a = b= c = 0;
P = T = 0;
p = s;
while(*p=='A'){
a++;
p++;
}
if(*p=='P'){
P++;
p++;
while(*p=='A'){
b++;
p++;
}
if(*p == 'T'){
T++;
p++;
while(*p=='A'){
c++;
p++;
}
}
}
if(!*p&&b>0&&c ==a*b&&P==1&&T==1){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return 0;
}
方法2:
條件判斷
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
int n;
//freopen("in.txt","r",stdin);
scanf("%d",&n);
getchar();
string s;
int a,b,c;
while(n--){
cin>>s;
int len = s.length();
a = b = c = 0;
int i;
bool flag = true;
int P = 0;
int T = 0;
for( i=0;i<len;i++){
if(s[i]=='A'){
a++;
}
else if(s[i]=='P')
{
P++;
break;
}
else{
flag = false;
break;
}
}
i++;
for( ;i<len;i++){
if(s[i]=='A'){
b++;
}
else if(s[i]=='T')
{
T++;
break;
}
else{
flag = false;
break;
}
}
i++;
for( ;i<len;i++){
if(s[i]=='A'){
c++;
}
else{
flag = false;
break;
}
}
if(flag){
if(c==a*b&&b>0&&P==1&&T==1){
cout<<"YES\n";
}
else{
cout<<"NO\n";
}
}
else{
cout<<"NO\n";
}
}
return 0;
}