这题首先要判断对于长度为len的字符串其可能取得的周期,由小到大判断长度的因子是否为周期即可
//AC.
#include <iostream>
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; int main() { int t; scanf("%d\n\n",&t); while(t--) { int len; char a[85],b[85]; memset(b,'\0',sizeof(b)); scanf("%s",a); if(t!=0) getchar(); len = strlen(a); for(int i=1;i<=len;i++) { if(len%i==0) //判断 i 是否为因子 { int j; for(j=0;j+i<len;j++) { if(a[j%i]!=a[j+i]) //以前 i +1 个为基准循环判断直到完全匹配 break; } if(j+i==len) { printf("%d\n",i); break; } } } if(t!=0) printf("\n"); } return 0; }