//利用状态机来记录已经扫描过的字符串的形式
//同时在不同的状态下记录字母A的个数
//最后判断是否到达终止状态及字母A的个数是否正确
#include<stdio.h>
#include<string.h>
#define WA -1
int main(){
char str[101];
int cnt,a,b,c,state;
scanf("%d\n",&cnt);
while(cnt--){
gets(str);
state=0;a=0;b=0;c=0;
for(int i=0;i<strlen(str);i++){
switch(state){
case 0:
if(str[i]=='A') a++;
else if(str[i]=='P') state=1;
else state=WA;
break;
case 1:
if(str[i]=='A') b++;
else if(str[i]=='T') state=2;
else state=WA;
break;
case 2:
if(str[i]=='A') c++;
else state=WA;
break;
}
if(state==WA) break;
}
if(!b || a*b!=c || state!=2) state=WA;
if(state==WA) printf("NO\n");
else printf("YES\n");
}
return 0;
}
PAT(Basic Level)_1003_我要通过!
最新推荐文章于 2020-10-01 11:55:48 发布