《算法竞赛入门经典》5.1.3的题,给定一个字符串,输出它的最小周期,要注意的是最后一个数据后不要跟空行,不然会WA,代码如下:
View Code
1 #include <cstdio> 2 #include <cstring> 3 4 int main() 5 { 6 #ifdef LOCAL 7 freopen("in", "r", stdin); 8 #endif 9 int n; 10 scanf("%d", &n); 11 char s[100]; 12 while(n--) 13 { 14 scanf("%s", s); 15 int len = strlen(s); 16 for(int i = 1; i <= len; i++) 17 if(len % i == 0) 18 { 19 int k; 20 for(k = i; k < len; k++) 21 if(s[k] != s[k%i]) break; 22 if(k == len) 23 { 24 printf("%d\n", i); 25 if(n) printf("\n"); 26 break; 27 } 28 } 29 } 30 return 0; 31 }