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;
    }
    

      

  • 相关阅读:
    Python操作SQLServer示例
    T-SQL 谓词和运算符
    T-SQL 语句—— 游标
    SQL中的循环、for循环、游标
    web自动化快速入门
    接口自动化的总结
    jenkins知识
    SVN知识
    random.sample函数
    项目实战(六)
  • 原文地址:https://www.cnblogs.com/A--Q/p/5693221.html
Copyright © 2011-2022 走看看