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;}
题目中输入输出未说清楚,这种方法是从网上搜到的,,是说需要空两行。
人生重要的不是所站的位置,而是所朝的方向