zoukankan      html  css  js  c++  java
  • KMP的next函数——BZOJ1355

    给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少

    Sample Input

    8
    cabcabca

    Sample Output

    3

    用到了kmp里的next自身匹配
    View Code
    #include<stdio.h>
    #include<math.h>

    char ss[1000009];
    int next[1000009];

    void getnext(char *s,int next[])
    {
    int i,j;
    i=0;j=-1;
    next[0]=-1;
    while(s[i])
    {
    if(j == -1||s[i]==s[j])
    {
    ++i;++j;next[i]=j;
    }else
    j=next[j];
    }
    }

    int main()
    {
    int n;
    while(scanf("%d",&n)!=EOF)
    {
    scanf("%s",ss);
    getnext(ss,next);
    int i;
    //for(i=1;i<=n;i++)
    // printf("%d ",next[i]);
    printf("%d\n",n-next[n]);
    }
    }
  • 相关阅读:
    php分页问题
    php中memcached的使用
    Linux安装Git
    day06
    day07
    day03
    day05
    day04
    列表的操作
    初识数据类型
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2337784.html
Copyright © 2011-2022 走看看