/*
8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
判断条件:
1.要判断的每一行都是独立的事件
2.条件2和条件3的规律:(PT中间A个数)*P左边A个数=T右边A个数,题目给的条件不是很明确,但是规律就是如此,PT中间每增加一个A,T右边加一个‘a’
3.一些细节:必须有P和T,P在T左边;P和T之间必须有A,这里也不是很明确
*/
#include"stdio.h"
#include"string.h"
int main(){
int n,i,j,pos_p,pos_t,count_p,count_a,count_t;
scanf("%d",&n);
char s[100];
for(i=0;i<n;i++){
pos_p=pos_t=count_p=count_a=count_t=0;
scanf("%s",&s);
//定位
for(j=0;j<strlen(s);j++){
if(s[j]=='P'){
pos_p=j;
count_p++;
}
if(s[j]=='T'){
pos_t=j;
count_t++;
}
if(s[j]=='A')
count_a++;
}
//判断
if(count_p+count_a+count_t<strlen(s)||count_p!=1||count_t!=1||(pos_t-pos_p-1)*pos_p!=strlen(s)-pos_t-1||pos_t-pos_p<=1)
printf("NO\n");
else
printf("YES\n");
}
return 0;
}
PAT 1003. 我要通过!
最新推荐文章于 2020-03-06 20:12:17 发布