KMP C++
来源:互联网 发布:windows无法启动sens 编辑:程序博客网 时间:2024/04/30 07:51
#include <iostream>#include <string>using namespace std;void print(const int* p, const int &n){cout << "前缀数组:";for(int i = 0; i < n - 1; i++){cout << *(p++) << " ";}cout << *p << endl;}int *prefix(const string& P){int m = P.size();int *pi = new int[m];int j = -1;pi[0] = -1;for(int i = 1; i < m; i++){while(j >= 0 && P[i] != P[j+1])j = pi[j];if(P[i] == P[j+1])++j;pi[i] = j;}return pi;}void kmp(const string& T,const string& P){int n = T.size();int m = P.size();int *pi = prefix(P);print(pi,m);int j = -1;for(int i = 0; i < n; i++){while(j >= 0 && T[i] != P[j+1])j = pi[j];if(T[i] == P[j+1])++j;if(j == m - 1){cout << "匹配位置:" << i - m + 1 << "," << i << endl;j = pi[j];}}}int main(){//string P("ababaca");string P("aba");string T("bacbababaababacaababaca");kmp(T,P);}
0 0
- c kmp
- KMP算法(C)
- C 语言KMP算法
- KMP C Code
- KMP算法C实现
- KMP算法c实现
- 【C++】KMP字符串匹配
- [C++] [算法] KMP算法
- KMP算法 C实现
- KMP算法--C语言
- [C++]KMP算法实现
- KMP算法--C/C++
- KMP算法(C++)
- KMP算法C代码描述
- KMP算法c语言实现
- KMP算法(C语言)
- KMP算法C#/c++实现
- kmp算法 c语言(转)
- hibernate连接sql server 2008需要哪些驱动
- hihoCoder - 1082 - 然而沼跃鱼早就看穿了一切 (字符串处理!!)
- 《Android应用开发精解》前言
- oc - 11 NSArray
- Base64以及Md5的使用
- KMP C++
- 做Camera应用时遇到的问题
- jsp内置对象简介
- DOM核心接口
- vmware linux下使用usb转串口
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- Merge 主键冲突问题
- iOS8毛玻璃效果-UIView模糊效果
- Linux阵列 RAID详解