码迷,mamicode.com
首页 > 其他好文 > 详细

周期串

时间:2021-01-27 13:15:21      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:另一个   ==   超过   pre   一个   重复   scan   ret   print   

如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期,例如,abcabcabcabc以3周期

输入一个长度不超过80的字符串,输出其最小周期

#include<stdio.h>
#include<string.h>
//这道题使用枚举,因为它是周期字符,所以它的字符数除以一个字符串的长度必为0,将这样的字符串一一找出,找出后在填入另一个备用数组,填到和原字符数相同,然后判断两个字符数组是否完全相同若相同即为答案
int main(void)
{
    int T;
    scanf("%d", &T);

    while (T--)
    {
        char ch[90];
        scanf("%s", ch);
        int n = strlen(ch);
        int i;
        for (i = 0; i < n; i++)
        {
            if (n % (i + 1) == 0)
            {
                char c[90];
                int q = 0;
                int p = 1;
                for (int j = 0; j < n / (i + 1); j++)
                {
                    for (int k = 0; k < (i + 1); k++)
                    {
                        c[q++] = ch[k];
                    }
                }

                for (int j = 0; j < n; j++)
                    if (ch[j] != c[j])
                    {
                        p = 0;
                    }
                if (p)break;
                else continue;
            }
        }
        if (T)
            printf("%d\n\n", i + 1);
        else
            printf("%d\n", i + 1);
    }
    return 0;
}

 

周期串

标签:另一个   ==   超过   pre   一个   重复   scan   ret   print   

原文地址:https://www.cnblogs.com/loliconsk/p/14328186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!