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


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

相关文章推荐

KMP POJ 2752 Seek the Name, Seek the Fame

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

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...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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)

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
  • 162

[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...

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

题目链接:  poj 2752 题目大意:  给出字符串,找出所有的前缀和后缀相等的子串                   按小到大输出这些子串的长度 解题思路:  ...

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

【题目大意】:给予一长度为n的字符串(n 如:ababcababababcabab  则输出2 4 9 18 分别对应ab,abab,ababcabab,ababcababababcabab。 ...

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

Seek the Name, Seek the Fame Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & ...

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

POJ 2752 Seek the Name, Seek the FameDescriptionThe little cat is so famous, that many couples tramp...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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