使用KMP算法求next数组
来源:互联网 发布:老男孩linux培训 编辑:程序博客网 时间:2024/05/18 06:41
KMP算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。
下面我们来讲解KMP如何求next数组。
举例
next[7]的计算,字符串第七位是c,将前面的6个字符,从头尾开始取5个组成子串比较,如果不相等,则从首尾取4个字符组成子串进行比较,如下
5个字符的情况:abaab : baaba
4个字符的情况:abaa : aaba
3个字符的情况:aba : aba 此时相等,那么next[7] = 3+1 = 4
如果一直比较到最后一个字符都不相等,那么该next值为1
测试题目:使用KMP算法在文本串S中找模式串P是一种常见的方法。假设S=P={xyxyyxxyx},亦即将S对自己进行匹配,匹配过程中正确的next数组是()
A.0,1,1,2,2,1,2,2,3
B.0,1,2,2,3,1,2,2,3
C.0,1,1,2,3,1,2,2,3
D.0,1,1,2,3,1,1,2,3
答案:C
1 0
- 使用KMP算法求next数组
- KMP算法求next数组
- KMP算法 求next数组的原理
- KMP算法中怎么求next数组
- KMP算法求next数组的方法
- KMP算法求next数组和nextval数组
- KMP 算法 next数组
- KMP算法--next数组
- KMP算法+NEXT数组
- KMP算法next数组
- KMP算法求next数组和nextval…
- 帮你理解KMP算法以及怎么求next数组
- [学习笔记] KMP算法的Next数组怎么求
- KMP算法求next数组的一些理解
- 两道水kmp-求next数组
- KMP求next数组详解
- KMP算法的next数组
- KMP算法Next数组计算
- (25)折半插入排序
- 图片、文件表单上传以及异步上传
- ICN路由和转发流程
- Linux网络接口和VLAN配置
- C++ primer 5 5.41节练习
- 使用KMP算法求next数组
- 内联函数
- xgboost
- C++中如何定义动态数组
- 144. Binary Tree Preorder Traversal 题解
- VS 2008 编译jsoncpp
- 变量
- 常见几种滤波器的比较
- 第五章 5-2 画笔