学会了模式匹配,能干的是有多了一件。 但是在学习过程中常用有问题的出现。 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
1.串的学习: 1)对串的操作有在串中查找某个子串,求取一个子串,在串的某个位置插入一个子串,删除一个子串等; 2)串的存储结构分为串的顺序存储、串的链式存储;若多用插入及删除操作则使用链式存储更方便; 3)串的模式匹配算法分为BF算法和KMP算法,BF算法的匹配过程易于理解,但是该算法在最好情况下 ...
分类:
其他好文 时间:
2019-04-15 00:12:57
阅读次数:
191
数据结构第四章学习的是串,数组和广义表(广义表课程中没讲,问题不大) 串的定义其实在c++学习中就有所接触,所以这里不详说, 重点说的是两个串模式匹配算法 1.BF算法 BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符; 若不 ...
分类:
其他好文 时间:
2019-04-14 23:02:08
阅读次数:
882
这两周上课学的较多且比较有印象的是串的模式匹配算法那道题 同时可以用BF或者KMP算法进行解决。 一开始学BF算法时就在想如何改进可以使匹配更加简便 后来KMP的学习让我对串的学习有了更深入的了解 同时BF和KMP算法之间的联系也是一个算法改进的很好学习范例 7-1 串的模式匹配 给定一个主串S(长 ...
分类:
其他好文 时间:
2019-04-14 17:57:05
阅读次数:
240
第四章主要是串和数组的学习,之前对串和数组的应用仅限于对其单独处理,本章学习着重于对具体题目的实际操作,实践了串的模式匹配算法,对其有了更深入的了解,数组的应用拓展到了稀疏矩阵的存储的实现。 一.串 串的模式匹配 BF算法 首先未匹配到串尾时,将两个字符串一一匹配,可用C++自带的length()函 ...
分类:
其他好文 时间:
2019-04-14 17:47:06
阅读次数:
129
我想谈谈我写模式匹配题时的心得体会: 如果是用BF算法我觉得的这道题真的非常简单,我是用的BF算法, 一开始我把string和书上的sstring搞混淆了 就像下图的代码所示: S.[i]==T.[j] S.length 但是string是头文件<cstring>包含的所以应该打成这样 S[i]== ...
分类:
其他好文 时间:
2019-04-14 16:18:25
阅读次数:
94
一、你对本章内容的小结 第4章主要学习了串、数组 串主要学习了有关 模式匹配算法 的两种算法:T(n)=O(m*n)的BF算法 和 T(n)=O(m+n)的KMP算法, KMP算法难在求出 模式的next数组。(即求next数组时的思想) 数组主要学习了 怎么求具体下标的元素的地址 以及 如何用一维 ...
分类:
其他好文 时间:
2019-04-14 16:06:56
阅读次数:
176
第四章的串,说实话,学的不是很好,相比于前两章来说。在第一道模式匹配那里卡很久,后来发现它没有那么复杂,最后一个点就是运行超时,用的BF算法,后来我又换了KMP算法,最后一个测试点过了,第二个没过,然后,就不知道该如何解决了。就是没有完全做对。 而稀疏矩阵那道题,我一开始看到的时候,以为三元组又是一 ...
分类:
其他好文 时间:
2019-04-14 15:55:56
阅读次数:
73
串的模式匹配 一、BF算法 —— 暴力匹配 1、当前匹配,++i;++j; 2、当前不匹配,i=i-j+2;j=1; 二、KMP算法 首先是主串s 和模式串t 的比较,当前比较的是主串s的第i个和模式串的第j个,若s[i]==t[j]; 则++i; ++j; 这里i,j为位置,而非下标 当出现不匹配 ...
分类:
其他好文 时间:
2019-04-14 09:29:43
阅读次数:
102