KMP模板
来源:互联网 发布:linux open 返回值 编辑:程序博客网 时间:2024/06/08 02:29
KMP主要就是对每次移动的位置进行了优化
移动位数=当前失配前匹配的长度减去最大前缀后缀重叠长度
模板
#include<bits/stdc++.h>void makeNext(const char P[],int next[]) { int q,k; int m = strlen(P); next[0] = 0; for (q = 1,k = 0; q < m; ++q) { while(k > 0 && P[q] != P[k]) k = next[k-1]; if (P[q] == P[k]) { k++; } next[q] = k; }}int kmp(const char T[],const char P[],int next[]) { int n,m; int i,q; n = strlen(T); m = strlen(P); makeNext(P,next); for (i = 0,q = 0; i < n; ++i) { while(q > 0 && P[q] != T[i]) q = next[q-1]; if (P[q] == T[i]) { q++; } if (q == m) { printf("匹配下标为",(i-m+1)); } }}int main(){ int i; int next[20]={0}; char T[] = "abaccccc"; char P[] = "acc"; printf("%s\n",T); printf("%s\n",P ); kmp(T,P,next); return 0;}
0 0
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- kmp模板
- KMP模板
- KMP 模板
- ios 符号化 crash的方法
- ISO8583报文
- Spring websocket over STOMP使用指南
- cocoapods 的安装步骤 及使用安装第三方框架
- Linux操作系统多线程信号总结
- KMP模板
- webView 无限进入,点击返回,返回到网页的上一个页面,当无返回时,返回到自己的页面
- Sqlite全面学习(三)
- 树形dp总结
- nginx--rewrite规则
- 面试中的 10 大排序算法总结
- C 柔性数组
- YARN的主要架构
- 安装完Mysql,mysql -u root -p出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using pass