您的位置:首页 > 其它

PAT(Basic Level)_1003_我要通过!

2017-07-22 13:45 411 查看
//利用状态机来记录已经扫描过的字符串的形式
//同时在不同的状态下记录字母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 1003