周期串(Periodic Strings, UVa455)

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

2 分析:

最小周期必然是字符串长度的约数。暴力循环数组即可得到。check(char s[], int T) {(s[i] != s[j])return 0;}return 1;}int main() {int T, kase, len, i;scanf(“%d”, &T);for (kase = 1; kase <= T; kase++){char s[100];scanf(“%s”, s);len = strlen(s) ;for (i = 1; i <= len; i++){if (len%i == 0 && check(s,i))//最小周期必然是字符串的约数。break;}if (kase != 1)putchar(‘\n’);printf(“%d\n”, i);}return 0;}

题目中输入输出未说清楚,这种方法是从网上搜到的,,是说需要空两行。

人生重要的不是所站的位置,而是所朝的方向

周期串(Periodic Strings, UVa455)

相关文章:

你感兴趣的文章:

标签云: