周期串问题

来源:互联网 发布:java如何防止恶意注册 编辑:程序博客网 时间:2024/05/16 17:08

题目标题:

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。字符串的长度小于等于100,由调用者保证。

 

详细描述:

  • 接口说明

原型:

    int GetMinPeriod(char *inputstring);

输入参数:

    char * inputstring:字符串

返回值:

    int 字符串最小周期


#include "OJ.h"#include <string.h>/*功能:计算字符串的最小周期。原型:    int GetMinPeriod(char *string);输入参数:    char * string:字符串。返回值:    int 字符串最小周期。*/int GetMinPeriod(char *inputstring){    /*在这里实现功能*/   int len = strlen(inputstring);    for(int i = 1; i <= len; ++i)    {        if (len % i == 0)        {      // 周期必然要满足len%i==0            int ok = 1;            for(int j = 0; j+i< len; ++j)            {   // 各周期间字符比较                if(inputstring[j] != inputstring[j+i])                {                    ok = 0;                    break;                }            }            if (ok)            {                return i;            }        }    }    return 0;}


1 0
原创粉丝点击