KMP模式匹配 一(串)

来源:互联网 发布:ubuntu安装vmware 编辑:程序博客网 时间:2024/06/05 12:06
KMP模式匹配 一(串)
Description
求子串的next值,用next数组存放,全部输出

Input
输入一个字符串

Output
输出所有next值

Sample Input
abaabcac
Sample Output

0 1 1 2 2 3 1 2

#include<stdio.h>#include<string.h>int l;char c[1000];int i,next[1000];void getnext(char *str,int next[]){int i,j;next[1]=0;i=1,j=0;while(i<=l){if(j==0||str[i]==str[j]){i++;j++;next[i]=j;}else{j=next[j];}}}int main(){scanf("%s",c);l=strlen(c);for(i=l;i>0;i--)c[i]=c[i-1];getnext(c,next);printf("%d",next[1]);for(i=2;i<=l;i++)printf(" %d",next[i]);return 0;}


0 0