455 - Periodic Strings-C-AC

暴力枚举的方法:因为最多不超过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;
}


你可能感兴趣的:(455 - Periodic Strings-C-AC)