题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=396
题目大意:求一个串的最小周期。
因为串很小,所以暴力可过,枚举周期即可,但是周期一定能被串的长度整除。
代码:
#include<iostream> #include<cstring> #include<iostream> #include<cstdio> using namespace std; int main() { int t; char s[85]; scanf("%d",&t); while(t--) { scanf("%s",s); int len=strlen(s); for(int i=1;i<=len/2+1;i++) { if(i==len/2+1) { printf("%d ",len); break; } bool flag=true; int j; if(len%i==0) { for( j=i;j<len;j++) { if(s[j]!=s[j%i]) { flag=false; break; } } } if(flag&&j==len) { printf("%d ",i); break; } } if(t) printf(" "); } return 0; }