题目标题:
如果一个字符串可以由某个长度为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;
}