#include <stdio.h>
#include<stdlib.h>//包含system()函数的头文件
#include <string.h>
int main() {
int num;
char str[105];
int flag;//如果不和格式标记为1
int count_P, count_T;//计算P和T的数量,它们的数量只能为1
int before_P, middle_A, after_T;//计算在P之前,P和T中间和T之后的A的数量
int choose;//用于判断A处于哪个位置
int index[10];//记录字符串是否正确的结果
int i,j;
for ( i = 0; i < 10; i++)
{
index[i] = 0;
}
scanf("%d", &num);
i = 0;
while (i<num) {
//初始化值
count_P = count_T = 0;
before_P = middle_A = after_T = 0;
choose = 1;
flag = 0;
scanf("\n%s", &str);
for (j = 0; j < strlen(str); j++) {
if (str[j] != 'P' && str[j] != 'A' && str[j] != 'T') {
flag = 1;
}
if (str[j] == 'P') {
count_P++;
choose++;
}
if (str[j] == 'T') {
count_T++;
choose++;
}
if (str[j] == 'A') {
switch (choose) {
case 1:before_P++; break;
case 2:middle_A++; break;
case 3:after_T++; break;
}
}
}
//如果不出现其它字符且满足第三条规则即before_P*middle_A==after_T且P、T数量都为1且middle_A的值不为0
if ((flag == 0) && (before_P * middle_A == after_T) && (count_P * count_T) == 1 && middle_A != 0) {
index[i] = 1;//结果正确
i++;
}
else {
index[i] = 0;//结果错误
i++;
}
}
for (i = 0; i < num; i++) {
if (index[i]==1)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}
1003. 我要通过
最新推荐文章于 2022-11-27 20:15:24 发布