455 - Periodic Strings-C-AC

来源:互联网 发布:中航显示屏编辑软件 编辑:程序博客网 时间:2024/05/29 13:27

暴力枚举的方法:因为最多不超过80个字符,所以暴力也不会超时。

1、定义n为周期,每次都从n到尾循环字符串。

2、判断str[i]与str[i-n]是否一致,一旦又不一样的就说明n不是最小正周期,n就累加。

3、如果循环完了都符合就继续,否则重复2过程。

 

注意:最后一组输出  不要  输出空行,否则会WA 。

 

AC代码:

 

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){    int t,n,i,f,slen;    char str[100];    scanf("%d",&t);    while(t--)    {        scanf("%s",str);        slen=strlen(str);        n=1; f=1;        while(f)        {            for (i=n;i<slen;i++)            {                if (str[i-n]!=str[i])                {                    n++;                    break;                }            }            if (i==slen)                break;        }        if (slen%n==0)            printf("%d\n",n);        else            printf("%d\n",slen);        if (t)            printf("\n");    }    return 0;}


0 0
原创粉丝点击