好吧,虽然这道题很水,但是我自己也想了很久,而且自己想的还有很多bug,
这道题的正确思路是:
要我们找一个字符串的最小周期
(1)首先这个周期一定要被字符长度整除,但可以被整除的不一定是周期(枚举周期)
(2)枚举周期之后进行字符检查,看看其余字符是否符合周期规律,找到之后输出当前周期后立刻跳出。
#include<stdio.h> #include<string.h> int main() { int n,i,k,len; char s[100]; scanf("%d",&n); while(n--) { scanf("%s",s); len=strlen(s); for(i=1; i<=len; i++) //i是用来计周期的 { if(len%i==0)//周期一定会被长度整除 { for(k=i; k<len; k++) { if(s[k]!=s[k%i]) { break; } } if(k==len) { printf("%d\n",i); break; } } } if(n>0) printf("\n"); } return 0; }