输入一个字符串,计算最小周期。如abcabcabc以3为最小周期,ababab以4为最小周期,abcdefg最小周期为7。
#include <iostream>
#include <cstring>
using namespace std;
int fun(char a[])
{
if (NULL == a)
{
return -1;
}
int n = strlen(a);
int result = n;
for (int i = 1; i <= n/2; i++)
{
if ((n % i) != 0)
{
continue;
}
else
{
bool ok = true;
for (int j = i; j < n; j++)
{
if (a[j] != a[j%i])
{
ok = false;
}
}
if (ok)
{
result = i;
break;
}
}
}
return result;
}
参考:《算法竞赛入门经典》 作者:刘汝佳