欢迎使用CSDN-markdown编辑器
来源:互联网 发布:linux cp复制文件夹 编辑:程序博客网 时间:2024/05/29 14:10
#include <iostream>#include <string>using namespace std;void get_next(string p, int next[]) { next[0] = -1; int k = -1, j = 0; while (j < p.size() - 1) if (k == -1 || p[j] == p[k]) next[++j] = ++k; else k = next[k];}int KMP(string text, string p, int* next) { int ans = -1, i = 0, j = 0; while (i < text.size()) { if (j == -1 || text[i] == p[j]) i++, j++; else j = next[j]; if (j == p.size()) { ans = i - p.size(); break; } } return ans;}int main() { string text = "aaaabaaaabaaaabaaaabaaaab";//raw text string pat = "abaabcaba";//pattern int* next = new int[pat.size()]; get_next(pat, next); cout << KMP(text, pat, next); cin.get(); return 0;}
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 【阅读】《黑客与画家》系列05-时间(节选)
- H264--编码原理以及I帧B帧P帧--1
- 数据库连接池的工作原理
- 如何有效提升Unity Gear VR游戏性能
- 从源码角度解析Java集合框架
- 欢迎使用CSDN-markdown编辑器
- H.264RTP封包原理
- 【XSHELL】xshell快捷键配置
- 剑指offer 阅读笔记 左旋转字符串
- Maven – Create a fat Jar file – One-JAR example
- Leetcode Best Time to Buy and Sell Stock IV
- H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
- 信息分析——共享经济服务模式的分析与研究
- PHP入门(5) C++和PHP二进制传输