您的位置:首页 > 其它

KMP算法 KMP模式匹配 一(串)

2014-07-28 23:24 232 查看
A -
KMP模式匹配 一(串)
Crawling in process...
Crawling failed
Time Limit:1000MS
Memory Limit:131072KB
64bit IO Format:
%lld & %llu

Description

求子串的next值,用next数组存放,全部输出

Input

输入一个字符串

Output

输出所有next值

Sample Input

abaabcac


Sample Output

0 1 1 2 2 3 1 2


#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int next[10005];
char str[10005];
int len;
void getnext(char *str,int next[])
{
int j,k;
next[1]=0;
j=1;
k=0;
while(j<=len)
if((k==0)||(str[j]==str[k]))
{
++j;
++k;
next[j]=k;
}
else
k=next[k];
}

int main()
{
char s[1005];
cin>>s;
len =strlen(s);
int j,k;
for(j=1,k=0;k<len;j++,k++)
{
str[j]=s[k];
}
int i;
getnext(str,next);
for(i=1;i<len;i++)
cout<<next[i]<<" ";
cout<<next[len]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: