zoukankan      html  css  js  c++  java
  • poj 2406 求字符串中重复子串的个数

    Sample Input

    abcd
    aaaa
    ababab
    .
    Sample Output

    1 //1个abcd
    4 //4个a
    3 //3个ab

     1 #include<stdio.h>
     2 #include<iostream>
     3 #include<string.h>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 const int MAXN=1000010;
     8 char T[MAXN];
     9 int next[MAXN];
    10 int n;
    11 void getNext()
    12 {
    13     int j,k;
    14     j=0;
    15     k=-1;
    16     next[0]=-1;
    17     while(j < n)
    18     {
    19         if(k==-1||T[j]==T[k])
    20         {
    21             j++;
    22             k++;
    23            
    24             next[j]=k;
    25         }
    26         else k=next[k];
    27         
    28         
    29     }
    30     if(n%(n-k)==0)
    31         printf("%d
    ",n/(n-k));
    32     else
    33         printf("1
    ") ;
    34 }
    35 int main()
    36 {
    37    
    38    
    39     while(scanf("%s",&T) != EOF)
    40     {    
    41         if (T[0]=='.')
    42            break ;
    43         n = strlen(T) ;
    44         getNext();
    45         
    46     }
    47     return 0;
    48 }
    View Code
  • 相关阅读:
    pymysql
    表查询
    元类
    外键约束
    Mysql知识
    C# windows服务的创建与调试
    JQuery随笔
    jQuery插件开发
    http post和put区别
    NPOI
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/4497890.html
Copyright © 2011-2022 走看看