首页 > 代码库 > kmp算法模板
kmp算法模板
lrj大大的模板
1 void getfail(char *p,int* f) 2 { 3 int m = strlen(p); 4 f[0] = 0; 5 f[1] = 0; 6 for (int i = 1;i < m;i++) 7 { 8 int j = f[i]; 9 10 while (j && p[i] != p[j]) j = f[j]; 11 12 f[i+1] = p[i] == p[j] ? j+1 : 0; 13 } 14 } 15 16 void find(char *t,char *p,int* f) 17 { 18 int n = strlen(t),m = strlen(p); 19 20 getfail(p,f); 21 22 int j = 0; 23 24 for (int i = 0;i < n;i++) 25 { 26 while (j && p[j] != t[i]) j = f[j]; 27 if (p[j] == t[i]) j++; 28 if (j == m) printf("%d\n",i-m+1); 29 } 30 }
kmp算法模板
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。