KMP是一种简化的字符串匹配的方法,思路并没有那么简单。 对于简单的给定的字符串和子串,用c++string库中的substr方法就可以很简单的做到字符匹配! 比如pta上的7-3 病毒感染检测 就可以用如下代码实现: #include <iostream>#include <string.h>us ...
分类:
编程语言 时间:
2020-05-06 14:11:26
阅读次数:
64
这一章,我们主要学习了串的知识点,最主要的是BF算法和KMP算法,BF简单粗暴,但时间的开销比较高,在BF算法里,匹配过程简单,注意指针开始匹配的语句是i=i-j+2;然后就是要多多回归课本。 还有就是kmp算法,KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的 ...
分类:
其他好文 时间:
2020-05-06 01:32:58
阅读次数:
55
1.本章学习了字符串的更多应用和数组的扩展知识。 现在学习字符串,不同于以往简单的使用,输入,输出,这一章带我深入到底层了解它的结构,学习很多字符串函数的实现方法,而不是简单地调包。还学到两个很有趣的匹配方法BF和KMP。KMP算法非常巧妙,通过观察主串的特点竟然能把m*n的复杂度优化为m+n.(虽 ...
分类:
其他好文 时间:
2020-05-05 23:51:55
阅读次数:
96
一、内容小结 (一) 串 定义 空串、子串、主串等概念 顺序存储——堆 链式存储 (二) 串的模式匹配算法 BF算法 KMP算法 (三) 数组 顺序存储 特殊矩阵的压缩存储 (四) 广义表 定义 取表头和取表尾两个运算 头尾链表、拓展线性链表的存储结构 (五)对string类型进一步了解 二、心得体 ...
分类:
其他好文 时间:
2020-05-05 23:49:07
阅读次数:
100
在这一章我学习了串、数组和广义表:①对于串的学习,我认为BF算法是一个时间复杂度高但易于理解的算法,而KMP算法是一个十分抽象的算法,next的函数让我觉得很难理解emmm,所以这part需要再看看书或者看看视频;②数组是我们从开始讲C++课程就学了的东西,所以我觉得数组的学习还挺顺利的。对于多为数 ...
分类:
其他好文 时间:
2020-05-05 23:23:37
阅读次数:
63
1.第四章学习的内容是串,数组和广义表 串的模式匹配有两种算法,一种是BF算法,也是最传统的算法,耗时久,时间复杂度是O(m*n),另一种就是KMP算法,时间复杂度是O(m+n) 跟之前的数组比起来,这章学习的数组还可以用链式结构,根据用户自行选择,还学了特殊矩阵的压缩存储 广义表则是一种递归的线性 ...
分类:
其他好文 时间:
2020-05-05 23:17:12
阅读次数:
52
一、本章内容小结 本章主要学习了串、数组和广义表。 1.串 定义: 串是内容受限的线性表,限定表中元素为字符。 串的两种存储结构: 顺序存储结构、链式存储结构。 串的模式匹配: 有两种常见算法: (1)BF算法,暴力依次比较法,时间复杂度为O(m*n)。 (2)KMP算法,找出当前匹配串中头尾最长的 ...
分类:
其他好文 时间:
2020-05-05 18:17:44
阅读次数:
73
KMP算法对于像我这样的ACM菜鸡来说实在难以理解 虽然有大佬讲课,但是还是不理解 感谢下面这位大犇的博客,让我看懂了KMP(跪谢) https://www.cnblogs.com/SYCstudio/p/7194315.html 下面是我对于学校题目的一些总结 KMP模板(解释太麻烦了,看上面的大 ...
分类:
其他好文 时间:
2020-05-05 12:42:10
阅读次数:
59
正则表达式的作用: 分割字符串、查找字符串、匹配字符串、替换字符串:简称->分割、查找、匹配、替换 正则表达式的分隔符: 正斜线(/),hash符号(#),取反符号(~) 通用原子 \d : 十进制的0-9 \D : 对\d取反:除了0-9 \w : 数字、字母、下画线 \W : 除了数字、字母、下 ...
分类:
其他好文 时间:
2020-05-05 10:58:51
阅读次数:
85
正则表达式介绍: 1.什么是正则表达式? 正则表达式实际上就是一串字符串,只不过这个字符串匹配了一定的规则。 2.正则表达式的引入: qq号的校验规则: 1.全部都是数字 2.不能以0开头 3.长度在5-12之间 1.不使用正则表达式检验qq: public static boolean check ...
分类:
其他好文 时间:
2020-05-05 10:35:34
阅读次数:
53