ZCMU 1600: 卡斯丁狗要吃糖葫芦

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;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。