[C++]KMP算法实现
来源:互联网 发布:exe mac要怎么打开 编辑:程序博客网 时间:2024/05/17 09:20
KMP算法说明:http://zh.wikipedia.org/wiki/%E5%85%8B%E5%8A%AA%E6%96%AF-%E8%8E%AB%E9%87%8C%E6%96%AF-%E6%99%AE%E6%8B%89%E7%89%B9%E7%AE%97%E6%B3%95
#include<string>using namespace std;class KMP{public: KMP(string); int search(string txt);private: string pat; static const int R = 256; int* dfa[R]; int M;};KMP::KMP(string _pat){ pat = _pat; M = pat.length(); for (int i = 0; i < R; i++){ dfa[i] = new int[M]; for (int j = 0; j < M; j++){ dfa[i][j] = 0; } } dfa[pat[0]][0] = 1; for (int X = 0, j = 1; j < M; j++){ for (int c = 0; c < R; c++){ dfa[c][j] = dfa[c][X]; } dfa[pat[j]][j] = j + 1; X = dfa[pat[j]][X]; }}int KMP::search(string txt){ int i, j; int N = txt.length(); for (i = 0, j = 0; i < N&&j < M; i++){ j = dfa[txt[i]][j]; } if (j == M) //如果找到返回在txt中的位置 return i - M; else //找不到则返回txt的长度 return N;}
0 0
- KMP算法C实现
- KMP算法c实现
- KMP算法 C实现
- [C++]KMP算法实现
- KMP算法c语言实现
- KMP算法C#/c++实现
- KMP算法C代码实现
- KMP算法--c语言实现
- KMP算法(c++)实现
- KMP算法C代码实现
- kmp算法实现-算法导论C语言版
- KMP算法的C语言代码实现
- kmp算法的c代码实现
- KMP字符串匹配算法C语言实现
- KMP算法的C语言实现
- KMP算法C语言的实现
- 模式匹配 KMP C语言算法实现
- KMP算法-C语言程序实现
- IPython extra space issue
- 中英文字体对照表
- 3.结构体与链表
- 在ARM linux上使用usb接口的触屏
- 第一个struct
- [C++]KMP算法实现
- LeetCode-21 Merge Two Sorted Lists(合并两个有序链表)
- 树形DP进阶之背包问题
- 第八章 List Dictionaries
- C#设计模式(单例
- windows下安装MongoDB
- iOS UITextField 限制用户输入小数点后位数的方法
- C,C++宏中#与##的讲解
- Android侧滑SliddingMenu+Activity详解