UVA-455 Periodic Strings
题目大意:一个字符串可以由某个长度为 k 的字符串重复得到,求最小周期 k 。如 abcabcabc 的最小周期为 3。
Sample Input
1
HoHoHo
Sample Output
2
解题思路:对于一个字符串,如果能够整除,则对最小周期从 1 开始逐个进行判断,将前几个字符循环与周期后的字符进行对比
#include <iostream>
#include<string.h>
using namespace std;
int main() {
int i, j;
int m;
cin >> m;
while (m--) {
char s[1000];
cin >> s;
int len = strlen(s);
for (i = 1; i <= len; i++) {
if (len % i == 0) {
for (j = 0; j < len; j++)
if (s[j] != s[j + i])
break;
if (j == len-i) {
cout << i << endl;
break;
}
}
}
if (m)
cout << endl;
}
return 0;
}