您的位置:首页 > 其它

PAT 1003 我要通过

2016-12-04 10:08 274 查看
1.解题思路如下:



2.完整代码如下:

#include  <stdio.h>
#include <string.h>

bool judgeAlphabet(char  string []);
int main(){
char string[1000][102];
int number;
scanf("%d",&number);
int i ;
for(i = 0;i<number;i++){
scanf("%s",string[i]);
}

for(i = 0 ;i<number;i++){
if(judgeAlphabet(string[i])){
int numberOfA = 0,numberOfP = 0,numberOfT = 0;//分别表示字母A,字母P,字母T的数量
int locationOfP = 0,locationOfT = 0;
while(string[i][locationOfP]!='P'){
locationOfP++;
}
while(string[i][locationOfT]!='T'){
locationOfT++;
}

int m  = locationOfT - locationOfP - 1;//求出P与T之间的A数目
int length = strlen(string[i]);

if( locationOfP ==0 && m == 0 && locationOfT == length-1){
printf("NO\n");
}
else if((m * locationOfP) == length - locationOfT - 1){
printf("YES\n");
}
else
printf("NO\n");
}
else
{
printf("NO\n");
}
}
}

bool judgeAlphabet(char  string []){
int length;
int i ;
length = strlen(string);
for(i = 0;i<length;i++){
if(string[i]!='A'&&string[i]!='P'&&string[i]!='T') {
break;
}
}
if(i<length){
return false;
}
return true;
}

/**
8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
*/


2.完整代码如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: