KMP算法
来源:互联网 发布:人工智能 估值 编辑:程序博客网 时间:2024/06/09 20:55
具体知识参考:http://blog.csdn.net/v_july_v/article/details/7041827
1、计算模式的next数组
2、使用next辅助进行匹配
#include<iostream> #include<vector>#include<string>using namespace std;vector<int> GetNext(string &p){int len = p.size();vector<int> next(len);next[0] = -1;int k = -1; int j = 1; //j是next数组的下标while (j<len){if (k == -1 || p[k] == p[j]){k++; //next[j] = k;j++; //更新next的下一位置}else{k = next[k];}}return next;}int KMP(string &s, string &p){vector<int> next = GetNext(p);int len1 = s.size();int len2 = p.size();int i = 0;int j = 0;while (i < len1 && j < len2){if (j==-1 || s[i] == p[j]){i++;j++;}else{j = next[j];}}if (j == len2) return i - j;else return -1;}int main(){string s = "abcabsdac";string p = "absd";cout << KMP(s,p);cout << endl;system("pause");return 0;}
阅读全文
0 0
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- KMP算法
- 考前定位(中)
- rabbitMQ的简单介绍与安装
- Session原理
- Vue cli 引入第三方JS和CSS的常用方法
- 设计师的灵魂
- KMP算法
- vue中自定义组件及组件间通信
- 自定义控件之绘图篇:Paint之setColorFilter
- DOM中的范围
- javaScript自定义事件CustomEvent详解(二)intEvent 和 intiCustomEvent 的区别,及新式写法和老式写法的区别
- caffe中的Dtype结构
- android应用开发-从设计到实现 4-6界面的整体布局
- 编写Shell脚本的最佳实践
- java 大数值BigInteger与BigDecimal