首页 > 学院 > 开发设计 > 正文

kmp模板

2019-11-06 08:33:33
字体:
来源:转载
供稿:网友
void makenext(const char *p , int *next){ int i=1,k=0; int m = strlen(p); next[0] = 0; for(i=1,k=0; i<m; i++) { while(k>0 && p[i]!=p[k]) k = next[k-1]; if(p[i] == p[k]) { k++; } next[i] = k; }}int kmp(const char *T , const char *p, int *next){ int m1 = strlen(T); int m2 = strlen(p); int i,k,ans = 0; makenext(p,next); for(i=0,k=0; i<m1; i++) { while(k>0 && T[i]!=p[k]) k = next[k-1]; if(T[i] == p[k]) k++; if(k == m2) return true; } return false;}
上一篇:linux虚拟网桥

下一篇:HDU 5308

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表