您的位置:首页 > 其它

PAT B1003

2016-03-22 16:39 316 查看


#include <iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
char s[11][110];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",s[i]);
}
for(int i=0;i<n;)
{
bool t=false;
int j=0,c=0;
int l=strlen(s[i]);
while(s[i][j]=='A')
{
j++;
c++;
}//去掉前面的A
if(s[i][j]!='P')
{
printf("NO\n");
i++;
continue;
}
else
{
j++;
int x=0;
if(s[i][j]!='A')
{
printf("NO\n");
i++;
continue;
}
while(s[i][j]=='A')
{
j++;
x++;
t=true;
}
if(s[i][j]=='T')
{
j++;
int p=0;
while(s[i][j]=='A')
{
j++;
p++;
}
if(j>=l&&t==true&&c*x==p)
{
printf("YES\n");
i++;
continue;
}
else
{
printf("NO\n");
i++;
continue;
}
}
else
{
printf("NO\n");
i++;
continue;
}
}

}
return 0;
}


这道题目刚开始没有读懂题目,结构有两个case无法通过,后来在网上看了大神的解析,才恍然大悟,P之前的A数目乘以P与T之间的A的数目等于P后面的A的数目。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: