KMP poj 2752 Seek the Name, Seek the Fame

原创 2013年12月03日 12:33:11

     深入理解KMP中的next,当我们求完next之后,len为字符串S的长度, 令j = next[len],k = next[j],则有:S[j-k+1, j] = S[len-k+1, len],就是根据这个思路来求解这个问题;


#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

const int MAXN = 400010;

int next[MAXN];

void Get_next(char* str)
{
    int i = 0, j = -1;
    next[0] = -1;
    int len = strlen(str);
    while(i < len)
    {
        if(j == -1 || str[i] == str[j])
        {
            ++i;
            ++j;
            next[i] = j;
        }
        else
            j = next[j];
    }
}

int main()
{
    char str[MAXN];
    while( ~scanf("%s", str) )
    {
        Get_next(str);
        int len = strlen(str);
        int k = 0, i = len;
        int sum[MAXN];
        sum[0] = len;
        while(next[i] > 0)
        {
            sum[++k] = next[i];
            i = next[i];
        }
        for(i = k; i >= 0; i--)
            cout<<sum[i]<<" ";
        cout<<endl;
    }
    return 0;
}


版权声明:本文为博主原创文章,转载需注明出处。

相关文章推荐

POJ 2752 Seek the Name, Seek the Fame (kmp next数组运用)

题目链接:点击打开链接 Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K ...

POJ 2752 Seek the Name, Seek the Fame (KMP)

(KMP 模板)给一个字符串S, 求出所有前缀pre,使得这个前缀也正好是S的后缀。 输出所有前缀的结束位置。Seek the Name, Seek the Fame Time Limit: ...

POJ 2752: Seek the Name, Seek the Fame(简单KMP-NEXT数组的应用)

题意大概就是给你一个很长的字符串,然后让你找所有满足”前缀=后缀”的长度.很显然,使用KMP里的求解NEXT数组的思想.最长的是串的长度,假设为len这里将next数组做一个变形,让next[i] =...

POJ2752 Seek the Name, Seek the Fame 【KMP】

Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submiss...

poj2752Seek the Name, Seek the Fame【kmp】

Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submiss...

POJ 2752 Seek the Name, Seek the Fame(KMP)

Description The little cat is so famous, that many couples tramp over hill and dale to Byteland, an...
  • DGY01
  • DGY01
  • 2016年08月16日 10:54
  • 185

POJ 2752 Seek the Name, Seek the Fame KMP

Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submiss...
  • kdwycz
  • kdwycz
  • 2014年01月26日 18:13
  • 453

POJ-2752 Seek the Name, Seek the Fame(kmp中next数组的应用)

H - Seek the Name, Seek the Fame Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%ll...

POJ 2752 Seek the Name, Seek the Fame(KMP)

Seek the Name, Seek the Fame Description The little cat is so famous, that many couples tramp ov...

POJ2752 Seek the Name, Seek the Fame KMP

Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submiss...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:KMP poj 2752 Seek the Name, Seek the Fame
举报原因:
原因补充:

(最多只允许输入30个字)