1003.我要通过!
- 解题思路:刚开始读题的时候有几个地方没有注意,首先xPATx其中PAT两侧的应该是一样的串,其次如果aPATc正确,那么aPAATca也是正确的,以此类推aPAAATcaa,aPAAAATcaaa…..都是正确的
- 代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
char a[101];
scanf("%d",&n);
while(n--)
{
int len,i,j,flag=0,pos;
scanf("%s",a);
len=strlen(a);
if(len<3)
printf("NO\n");
else
{
for(i=0;i<len;i++)
{
if(a[i]=='P'&&a[i+1]=='A'&&a[i+2]=='T'&&i==len-i-3)
{
flag=1;
a[i]='A';
a[i+2]='A';
break;
}
if(flag==0&&a[i]=='P'&&a[i+1]=='A')
{
flag=2;
a[i]='A';
pos=i;
}
if(a[i]=='T'&&flag==2&&len-i-1==(i-pos-1)*pos)
{
a[i]='A';
flag=1;
break;
}
}
if(flag==1)
{
for(j=0;j<len;j++)
{
if(a[j]!='A')
break;
}
if(j>=len)
printf("YES\n");
else
printf("NO\n");
}
else
printf("NO\n");
}
}
return 0;
}