kmp
来源:互联网 发布:java简单计算器源代码 编辑:程序博客网 时间:2024/06/06 19:32
这只是最简单的MP算法还可以进行进一步的优化
KMP算法主要难点是对next数组的理解
void getnext(char *s,int *next)//更新next数组{ int len = strlen(s);next[0] = 0;next[1] = 0;int i,j;for(i = 0;i<len;i++){j = next[i];while(j!=0&&s[i]!=s[j])j = next[j];//顺着失陪边走,直到可以匹配next[i+1] = s[i] == s[j]?j+1:0;}}void find(char *T,char *p,int *next)//查找P是不是T的子串{int len = strlen(T),m = strlen(p);int j = 0,i;for(i = 0;i<len;i++){while(j&&p[j]!=T[i])j = next[j];if(p[j] == T[i])j++;if(j == m)printf("%d\n",i-m+1);//找到了返回下标,不是第几个}}
0 0
- KMP
- KMP
- KMP
- KMP
- KMP
- KMP
- kmp
- kmp
- KMP
- kmp
- KMP
- KMP
- KMP
- kmp
- KMP
- KMP
- kmp
- KMP
- 关于Raid的知识
- 利用CreateProcess调用.exe文件
- 关于Rownum的使用
- SQL取特定的记录
- 丢失undo文件,丢失部分归档日志的…
- kmp
- SAP系统安装之Oracle 10g数据库(W…
- abap中dialog的双击事件
- sysdba和dba的区别
- ORA-00202: 控制文件
- Hough变换检测直线
- 为什么会产生无效对象
- Administrator Guide精选片段
- Linux基础学习笔记之文件系统结构