KMP算法模板(字符串匹配问题)
来源:互联网 发布:深圳正大数据恢复 编辑:程序博客网 时间:2024/06/03 15:36
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000005;const int maxm = 10005;struct K_M_P{ int target[maxn]; int pattern[maxm]; int next[maxm]; int target_len; int pattren_len;};K_M_P kmp;int KMP(){ //预处理计算next数组; kmp.next[0] = 0; kmp.next[1] = 0; for(int i = 1; i < kmp.pattren_len; ++i) //递推边界初值 { int j = kmp.next[i]; while(j && kmp.pattern[i] != kmp.pattern[j]) j = kmp.next[j]; kmp.next[i+1] = kmp.pattern[i] == kmp.pattern[j] ? j + 1 : 0; } //kmp int j = 0; //当前节点编号 for(int i = 0; i < kmp.target_len; ++i) //文本串指针 { while(j && kmp.pattern[j] != kmp.target[i]) j = kmp.next[j]; //若失配则加next[j] 向下滑行 if(kmp.pattern[j] == kmp.target[i]) j++; if(j == kmp.pattren_len) //匹配成功 { printf("%d\n", i - kmp.pattren_len + 1 + 1); //若从零开始计数则+1+1; return -1; } } return 1; //无匹配}
阅读全文
0 0
- KMP算法模板(字符串匹配问题)
- 字符串匹配 KMP算法 模板
- 字符串匹配问题:KMP算法
- KMP字符串匹配算法模板代码
- 【字符串】KMP匹配模板
- 【模板】KMP字符串匹配
- [模板]-KMP字符串匹配
- KMP算法解决字符串匹配问题
- KMP算法——字符串匹配问题
- 字符串匹配问题(KMP算法)
- KMP算法用于字符串匹配问题
- KMP算法解决字符串匹配问题
- KMP算法解决字符串匹配问题
- 字符串匹配问题——KMP算法
- KMP 字符串匹配算法
- kmp字符串匹配算法
- kmp字符串匹配算法
- KMP字符串匹配算法
- Twincat3报-0x4550错误的解决方法
- Go语言指针
- 学习opengl入门
- 基于SpringCloud开发的微服务在Docker Swarm集群中跨Host主机通信的一种解决方案
- 【LEFT JOIN 实战记录】统计查询-按主办处室区县查询纳入分析研判库
- KMP算法模板(字符串匹配问题)
- 黑马商城项目_制作导航条的圆点
- xml工具箱phpcms
- jquery内容过滤选择器:内容过滤选择器它是根据元素内部文本内容进行选中。
- TF-slim 调用slim提供的网络模型训练自己的数据
- 阶段总结——软件工程视频(二)
- Java compiler level does not match the version of the installed Java project facet.
- Java8 常用FunctionInterface使用方法
- ROS 学习系列 -- Roomba, Xtion Pro机器人制作地图在Android手机无法实时观测地图