zoukankan      html  css  js  c++  java
  • 周期串(Periodic Strings,UVa455)

    解题思路:

    对一个字符串求其最小周期长度,那么,最小周期长度必定是字符串长度的约数,即最小周期长度必定能被字符串长度整除

    其次,对于最小周期字符串,每位都能对应其后周期字串的每一位,

    即 ABC  ABCABC (345678)->%其字串长度3

        012  3%3 4%3 5%3  6%3 7%3  8%3

              0      1     2        0      1       2

    if(a[j]!=a[j%3])说明不对应,不是周期,进行下一位扫描。

    AC Code:

    #include<stdio.h>
    #include<string.h>
    int main(void)
    {
        int n,stlen,i,j;
        char carr[1000];
        while(scanf("%d",&n)!=EOF)
        {
            while(n--)
            {
                scanf("%s",carr);
                stlen=strlen(carr);
                for(i=1; i<=stlen; i++)
                {
                    if(stlen%i==0)
                    {
                        for(j=i; j<stlen; ++j)
                            if(carr[j]!=carr[j%i])break;
                        if(j==stlen)
                        {
                            printf("%d
    ",i);
                            break;
                        }
                    }
                }
                if(n)printf("
    ");
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    Unity性能优化-遮挡剔除
    unity AssetBundle
    unity中Animation与Animator的区别
    VS 项目没有“添加引用”选项
    VS 右键属性闪一下啥也打不开问题
    协程
    协程
    Python 线程和进程(2)
    线程锁
    ssh传文件加MD5
  • 原文地址:https://www.cnblogs.com/A--Q/p/5693221.html
Copyright © 2011-2022 走看看