数据结构之模式匹配KMP算法的next数组求解
来源:互联网 发布:社交网络sns 编辑:程序博客网 时间:2024/05/21 11:34
next数组值的求解方法 。
例如:模式串abaabcac next值01122312 nextval值 next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其 next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行 比较,直到找到某个位上内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到与前一位相 等的内容,那么需求的位上的next值即为1。
看起来很令人费解,利用上面的例子具体运算一遍。
1.前两位必定为0和1。
2.计算第三位的时候,看第二位b的next值,为1,则把b和1对应的a进行比较,不同,则第三位a的next的值为1,因为一直比到最前一位,都没有 发生比较相同的现象。
3.计算第四位的时候,看第三位a的next值,为1,则把a和1对应的a进行比较,相同,则第四位a的next的值为第三位a的next值加上1。为 2。因为是在第三位实现了其next值对应的值与第三位的值相同。
4.计算第五位的时候,看第四位a的next值,为2,则把a和2对应的b进行比较,不同,则再将b对应的next值1对应的a与第四位的a进行比较,相 同,则第五位的next值为第二位b的next值加上1,为2。因为是在第二位实现了其next值对应的值与第四位的值相同。
5.计算第六位的时候,看第五位b的next值,为2,则把b和2对应的b进行比较,相同,则第六位c的next值为第五位b的next值加上1,为3, 因为是在第五位实现了其next值对应的值与第五位相同。
6.计算第七位的时候,看第六位c的next值,为3,则把c和3对应的a进行比较,不同,则再把第3位a的next值1对应的a与第六位c比较,仍然不 同,则第七位的next值为1。
7.计算第八位的时候,看第七位a的next值,为1,则把a和1对应的a进行比较,相同,则第八位c的next值为第七位a的next值加上1,为2, 因为是在第七位和实现了其next值对应的值与第七位相同。
例如:模式串abaabcac next值01122312 nextval值 next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其 next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行 比较,直到找到某个位上内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到与前一位相 等的内容,那么需求的位上的next值即为1。
看起来很令人费解,利用上面的例子具体运算一遍。
1.前两位必定为0和1。
2.计算第三位的时候,看第二位b的next值,为1,则把b和1对应的a进行比较,不同,则第三位a的next的值为1,因为一直比到最前一位,都没有 发生比较相同的现象。
3.计算第四位的时候,看第三位a的next值,为1,则把a和1对应的a进行比较,相同,则第四位a的next的值为第三位a的next值加上1。为 2。因为是在第三位实现了其next值对应的值与第三位的值相同。
4.计算第五位的时候,看第四位a的next值,为2,则把a和2对应的b进行比较,不同,则再将b对应的next值1对应的a与第四位的a进行比较,相 同,则第五位的next值为第二位b的next值加上1,为2。因为是在第二位实现了其next值对应的值与第四位的值相同。
5.计算第六位的时候,看第五位b的next值,为2,则把b和2对应的b进行比较,相同,则第六位c的next值为第五位b的next值加上1,为3, 因为是在第五位实现了其next值对应的值与第五位相同。
6.计算第七位的时候,看第六位c的next值,为3,则把c和3对应的a进行比较,不同,则再把第3位a的next值1对应的a与第六位c比较,仍然不 同,则第七位的next值为1。
7.计算第八位的时候,看第七位a的next值,为1,则把a和1对应的a进行比较,相同,则第八位c的next值为第七位a的next值加上1,为2, 因为是在第七位和实现了其next值对应的值与第七位相同。
0 0
- 数据结构之模式匹配KMP算法的next数组求解
- KMP模式匹配算法中next和nextval数组的快速求解
- KMP模式匹配算法中next和nextval的求解
- KMP模式匹配算法中next和nextval的求解
- KMP字符串匹配,next数组的求解
- KMP模式匹配算法之next数组解析
- KMP之next[]数组的求解
- 模式匹配 KMP算法中Next值求解
- KMP算法,next数组求解
- KMP模式匹配的next数组
- 【KMP】多种KMP算法next数组的求解
- KMP模式匹配算法中next和nextval的求解(转)
- KMP NEXT数组的求解
- KMP算法中的next数组的两种算法求解
- KMP模式匹配算法中next[]数组求法
- KMP算法中next和nextval数组的求解
- 计算KMP模式匹配算法中next数组的代码分析及改进型KMP算法中nextval数组代码分析
- 数据结构之串的KMP模式匹配算法的实现
- 百思不得其姐关注模块的推荐关注中 右侧TableView刷新细节
- thinkPHP浓缩版笔记
- [Android]ToolBar使用心得
- c语言入门之项目3.0——求和的和
- [android]_[Notication的使用]
- 数据结构之模式匹配KMP算法的next数组求解
- thinkPHP框架搭建心得
- EXE文件脱壳解压#层序遍历搜索#源码
- 九度OJ 题目1172:哈夫曼树&题目1107:搬水果
- 《笨办法学Python》 第42课手记
- Using DevStack with neutron Networking
- Android夜间模式最佳实践
- iOS-UI控件精讲之【1】-UIView
- 《Android源码设计模式》读书笔记 (16) 第16章 访问者模式