个人学习——数据结构:KMP算法next函数序列计算
2015-10-13 16:03
399 查看
至于KMP是什么,next函数是什么我就不多说了,直接上方法:
首先明确什么是前缀什么是后缀:
abcd
前缀:abc ab a
后缀:d cd bcd
例1 abaabcac
这个字符串一共有8位,若没有前缀和后缀相等为其他情况,置1,若有相等,置长度加1,一位相等置2类似。。。。。
1.第一位时,果断是0(函数说明里有,各种数据结构教材也有)
2.第二位时刻,看的是‘a’(该位之前的字符串),属于其他情况 1
3.看的是 ab 没有相等属于其他情况 1
4.aba 可能出现前缀a和后缀a,即相等,长度为1,所以该位1+1=2
5.abaa a 和 a 2
6.abaab ab 3
7.abaabc 1
8.abaabca a 2
所以结果为:01122312
例2:abaabaca
1.0
2.1
3.1
4.a 2
5.a 2
6.ab 3
7.aba 4
8.1
即:01122341
首先明确什么是前缀什么是后缀:
abcd
前缀:abc ab a
后缀:d cd bcd
例1 abaabcac
这个字符串一共有8位,若没有前缀和后缀相等为其他情况,置1,若有相等,置长度加1,一位相等置2类似。。。。。
1.第一位时,果断是0(函数说明里有,各种数据结构教材也有)
2.第二位时刻,看的是‘a’(该位之前的字符串),属于其他情况 1
3.看的是 ab 没有相等属于其他情况 1
4.aba 可能出现前缀a和后缀a,即相等,长度为1,所以该位1+1=2
5.abaa a 和 a 2
6.abaab ab 3
7.abaabc 1
8.abaabca a 2
所以结果为:01122312
例2:abaabaca
1.0
2.1
3.1
4.a 2
5.a 2
6.ab 3
7.aba 4
8.1
即:01122341
相关文章推荐
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构揭秘一
- 数据结构之Treap详解
- JavaScript数据结构和算法之图和图算法
- 用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- 解析PHP中的正则表达式以及模式匹配
- JavaScript 通过模式匹配实现重载
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
- java数据结构和算法学习之汉诺塔示例
- Java数据结构及算法实例:三角数字
- Java数据结构之简单链表的定义与实现方法示例