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
1.第四章学习了串、数组和广义表,其中重点在串的模式匹配算法,其次是特殊矩阵的压缩存储。串的模式匹配算法中最难理解的就是KMP算法了,虽然我反复看了三遍SPOC上的教学视频,但仍未能完全吃透这个算法,在网上搜索后,意外发现一位博主给出的解释,一下次又恍然大悟了,但是要说能自己打出整个函数,那还是有点 ...
分类:
其他好文 时间:
2020-05-05 00:49:38
阅读次数:
64
Horspool 字符串匹配算法对Boyer Moore算法的简化算法。 Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有 sub linear亚线性时间复杂度 。 Horspool 算法: 对于每个搜索窗口,该算法将 窗口内的最后一个字符 和 模式串中的最后一个字符 ...
分类:
编程语言 时间:
2020-05-04 15:40:09
阅读次数:
66
public class Kmp { String snippet; String searchText; int[] next; public Kmp(String inputString) { this.snippet = inputString; // next = new int[this. ...
分类:
编程语言 时间:
2020-05-01 12:39:47
阅读次数:
73
KMP算法 1. 算法介绍 KMP是一个解决模式串在文本串是否出现过,若出现过,最早出现的位置的算法 Knuth Morris Pratt 字符串查找算法,简称“KMP算法”,此算法由 Donald Knuth、Vaughan Pratt、James H. Morris 三人于 1977年联合发表, ...
分类:
编程语言 时间:
2020-05-01 01:21:12
阅读次数:
58
简介 字符串的模式匹配是对字符串的基本操作之一,广泛应用于生物信息学、信息检索、拼写检查、语言翻译、数据压缩、网络入侵检测等领域,如何简化其复杂性一直是算法研究中的经典问题。字符串的模式匹配实质上就是寻找模式串P是否在主串T 中,且其出现的位置。我们对字符串匹配的效率的要求越来越高, 应不断地改良模 ...
分类:
编程语言 时间:
2020-04-30 21:15:28
阅读次数:
77