A character string is said to have period k if it can be formed by concatenating one or more repetitions
of another string of length k. For example, the string ”abcabcabcabc” has period 3, since it is formed
by 4 repetitions of the string ”abc”. It also has periods 6 (two repetitions of ”abcabc”) and 12 (one
repetition of ”abcabcabcabc”).
Write a program to read a character string and determine its smallest period.
Input
The first line oif the input file will contain a single integer N indicating how many test case that your
program will test followed by a blank line. Each test case will contain a single character string of up
to 80 non-blank characters. Two consecutive input will separated by a blank line.
Output
An integer denoting the smallest period of the input string for each input. Two consecutive output are
separated by a blank line.
Sample Input
1
HoHoHo
Sample Output
of another string of length k. For example, the string ”abcabcabcabc” has period 3, since it is formed
by 4 repetitions of the string ”abc”. It also has periods 6 (two repetitions of ”abcabc”) and 12 (one
repetition of ”abcabcabcabc”).
Write a program to read a character string and determine its smallest period.
Input
The first line oif the input file will contain a single integer N indicating how many test case that your
program will test followed by a blank line. Each test case will contain a single character string of up
to 80 non-blank characters. Two consecutive input will separated by a blank line.
Output
An integer denoting the smallest period of the input string for each input. Two consecutive output are
separated by a blank line.
Sample Input
1
HoHoHo
Sample Output
2
附上代码:
#include<stdio.h>
#include<string.h>
int main(void)
{
int T;
char a[100];
scanf("%d", &T);
while (T--)
{
scanf("%s", a);
int flag = 0;
int n = 0;
for (int i = 1; i <= strlen(a); i++)
{
n = 0;
if (strlen(a) % i == 0)
{
for (int ii = 0; ii<strlen(a); ii++)
{
if (a[ii] == a[ii%i])
{
n++;
if (n == strlen(a))
{
printf("%d", i);
flag = 1;
break;
}
}
}
}
if (flag) break;
}
if (T)
printf("\n\n");
else
printf("\n");
}
return 0;
}