UVa455 Periodic Strings 周期串AC

来源:互联网 发布:淘宝腾讯视频会员 编辑:程序博客网 时间:2024/06/05 22:54

思路:
设最小正周期为i,范围为[1,strlen(str)],i要符合len%i==0,且str[k]==str[k+i]。

#include<stdio.h>#include<string.h>int i,count1=0;    //i记录最小正周期 int N;char str[90];int main(){    scanf("%d",&N);    while(N--)    {        scanf("%s",str);        int len=strlen(str);        int count=0;   //小循环的次数         if(count1++>0)    printf("\n");//注意题目要求输出间隔空行         for (i=1;i<len;i++)        {            if(len%i==0)            {                for(int k=0;k<len-i;k++)   // k+i < len                {                    if(str[k]!=str[k+i])  //只要有一小组不符合则break                     {                        count=0;                        break;                    }                    count++;                }            }            if(count>0)            {                printf("%d\n",i);                break;            }                   }        if(i==len)     printf("%d\n",i);    }       return 0;}
0 0
原创粉丝点击