定义 比较 抽象数据类型 存储结构 朴素模式匹配 KMP模式匹配【PDF版本可以私信 】 ...
分类:
其他好文 时间:
2019-04-17 18:11:18
阅读次数:
164
The key of Kmp is to build a look up table that records the match result of prefix and postfix. Value in the table means the max len of matching subst ...
分类:
其他好文 时间:
2019-04-15 17:56:46
阅读次数:
160
本章学习了两种算法,BF算法和KMP算法 BF算法就是暴力匹配,非常好理解 KMP算法的优点是,与BF算法相比,消除了回溯,大大提高了效率 缺点是,好难理解。。。 本章除了新学习了两种算法,我还看到了上学期所学的线性代数知识矩阵在编程上的应用(以前我总是不理解我一个计算机专业的学线性代数有什么用) ...
分类:
其他好文 时间:
2019-04-15 09:11:32
阅读次数:
154
关于模式匹配算法,在这里我想总结一下KMP算法。 KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。 然后上下代码: public static int KMP ...
分类:
其他好文 时间:
2019-04-15 01:08:42
阅读次数:
178
第四章 题目:串的模式匹配 给定一个主串S(长度<=10^6)和一个模式T(长度<=10^5),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置。 (用KMP算法,就是不用再回溯, 最前面的k个字符和j之前的最后k个字符是一样的:P[1~ k] == P[j ...
分类:
编程语言 时间:
2019-04-15 01:05:47
阅读次数:
215
学会了模式匹配,能干的是有多了一件。 但是在学习过程中常用有问题的出现。 1、首先利用BF算法解决。(这是草稿的代码) 很明显我忘了一点——函数strlen(),所以我自己写函数获取字符串的长度。因此这也是我后来大问题的原因吧。 2、在写KMP算法时,因为之前打BF算法时忘记书本的内容,所以我很相信 ...
分类:
其他好文 时间:
2019-04-15 00:35:44
阅读次数:
199
这章主要学习了串和数组。围绕串的主要有两种算法,BF算法和晦涩难懂的KMP算法;而围绕数组,则有特殊矩阵的压缩储存问题。我认为,KMP算法和压缩问题是本章的难点,也是本书学习的重中之重。 还记得老师上课时讲KMP算法和BF算法的时候说,想要用好这两个算法,必须先弄清楚算法中的变量是位置还是下标。于是 ...
分类:
其他好文 时间:
2019-04-15 00:30:42
阅读次数:
156
首先是串的模式匹配:这个题主要是要用KMP算法来解决,然后其实不是特别难理解,因为前几周已经开始习惯用实例的方法来分析代码,所以这次也用了一下这个方法来理解题目,但是这样感觉其实不是特别的好,因为会漏掉一些情况没有考虑到,而且有一些代码的实例也不是那么好想出来的,所以不能完全依赖这个找实例的方法,以 ...
分类:
其他好文 时间:
2019-04-15 00:29:58
阅读次数:
148
1.初步体会到了更优算法对数据量大的测试的重要作用。 2.一开始我将temp[1000002]定义在主函数内,结果不能运行,定义成全局变量之后问题迎刃而解。原因如何我已发邮箱问老师,知晓结果后再做总结。 3.在理解求next[j]算法时,我体会到了用画图法分析有助于直观地认识算法本质,这对于理解复杂 ...
分类:
编程语言 时间:
2019-04-15 00:25:35
阅读次数:
106
1.串的学习: 1)对串的操作有在串中查找某个子串,求取一个子串,在串的某个位置插入一个子串,删除一个子串等; 2)串的存储结构分为串的顺序存储、串的链式存储;若多用插入及删除操作则使用链式存储更方便; 3)串的模式匹配算法分为BF算法和KMP算法,BF算法的匹配过程易于理解,但是该算法在最好情况下 ...
分类:
其他好文 时间:
2019-04-15 00:12:57
阅读次数:
191