zoukankan      html  css  js  c++  java
  • POJ 2406 KMP next数组的应用

    题意:让你找最小重复串的个数

    加深KMP中对next数组的理解

    #include <cstdio>
    #include <cstring>
    using namespace std;
    int next[1000500],slen;
    char s[1000500];
    void get_next(){
        int i=1,j=0;
        next[1]=0;
        while(i<=slen){
            if(j==0||s[i]==s[j])
                next[++i]=++j;
            else j=next[j];
        }
    }
    int main(){
        while(scanf("%s",s+1)&&s[1]!='.'){
            slen=strlen(s+1);
            get_next();
            if(slen%(1+slen-next[slen+1])==0)
                printf("%d
    ",slen/(1+slen-next[slen+1]));
            else puts("1");
        }
    }
    #include <cstdio>
    #include <cstring>
    using namespace std;
    int next[1000500],slen;
    char s[1000500];
    void get_next(){
        int i=0,j=-1;
        next[0]=-1;
        while(i<=slen){
            if(j==-1||s[i]==s[j])
                next[++i]=++j;
            else j=next[j];
        }
    }
    int main(){
        while(scanf("%s",s)&&s[0]!='.'){
            slen=strlen(s);
            get_next();
            if(slen%(slen-next[slen])==0)
                printf("%d
    ",slen/(slen-next[slen]));
            else puts("1");
        }
    }
  • 相关阅读:
    jQuery工具函数
    jQuery中的Ajax
    jQuery动画效果
    jQuery基础事件
    jQuery操作DOM和CSS函数
    jQuery基础DOM和CSS操作
    jQuery过滤选择器
    jQuery常规选择器
    -3dB的理解
    诺顿定理概述
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532395.html
Copyright © 2011-2022 走看看