Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 194 Solved: 72
Description
卡斯丁狗喜欢吃糖葫芦(喜欢前面再加两个字“并不”),但是,但是,他很挑剔,他只吃这样的,就是这样的,就是,就是不管你从哪一头吃,看起来都是一样的,卡斯丁狗给你了一个很长的串,他记得这个很长的串有N个长度一样且满足上述的条件的串组成,你告诉他,他有没有记错。
Input
一个字符串,和一个数N(N<=1000)
Output
YES或者NO
Sample Input
abbatxxt 2
abbatxtc 2
Sample Output
YES
NO
题解:
问了同学之后会了,读题不仔细--"很长的串有N个长度一样且满足上述的条件的串组成"。首先如果串长度%n!=0,输出NO,其次判断字串是不是回文。
代码:
#include<stdio.h>
#include<string.h>
char s[1000];
bool palindrome(int p,int b)
{
while(p<b)
{
if(s[p]!=s[b])
return false;
p++;
b--;
}
return true;
}
int main()
{
int n;
while(~scanf("%s%d",s,&n))
{
int l=strlen(s);
int x=l/n;
if(l%n!=0)
{
printf("NO\n");
continue;
}
int flag=1;
for(int i=0;i<n;i++)
{
int p=i*x; //字串开头
int b=i*x+x-1; //字串结尾
if(palindrome(p,b))
flag=1;
else
flag=0;
}
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}