1.内容小结 数据结构第四章学习的是串,数组和广义表。重点学习了串和串的模式匹配和数组的压缩存储 两个串模式匹配算法 1.BF算法 BF算法的思想就是将目标串第一个字符与模式串的第一个字符进行匹配,若相等,则继续比较的第二个字符; 若不相等,则比较原字符串的第二个字符和模式串的第一个字符,依次比较下 ...
分类:
其他好文 时间:
2020-05-05 23:10:52
阅读次数:
74
Horspool 字符串匹配算法对Boyer Moore算法的简化算法。 Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有 sub linear亚线性时间复杂度 。 Horspool 算法: 对于每个搜索窗口,该算法将 窗口内的最后一个字符 和 模式串中的最后一个字符 ...
分类:
编程语言 时间:
2020-05-04 15:40:09
阅读次数:
66
Message 思路 一开始的思路就是暴力匹配,数据只有 $2000$ 最大嘛,先是把s串作为文本串,u作为模式串取匹配,过了样例交一发,看着测评机跑到了25,突然就停了,果真没这么简单,wa了一发,然后想一下,如果两个互换位置再匹配一次行不行,没想到还真过了。 乱搞过了,还是把道理给搞清楚吧。 首 ...
分类:
其他好文 时间:
2020-05-04 15:12:38
阅读次数:
72
KMP算法 1. 算法介绍 KMP是一个解决模式串在文本串是否出现过,若出现过,最早出现的位置的算法 Knuth Morris Pratt 字符串查找算法,简称“KMP算法”,此算法由 Donald Knuth、Vaughan Pratt、James H. Morris 三人于 1977年联合发表, ...
分类:
编程语言 时间:
2020-05-01 01:21:12
阅读次数:
58
题目链接 题意 有一个主串$L$,和一个模式串集$S$,每次可以从主串中删除一个模式串,删除后主串剩余的两部分合并,求能得到的主串的最小长度 题解  挺神仙的dp如果已经知道了区间$[i,j]$能否被删除的话,那么就可以用$dp[i]$表示对$L$的前$i$个字符进行操作后能得到的最小的长度 ...
分类:
其他好文 时间:
2020-05-01 01:13:29
阅读次数:
62
简介 字符串的模式匹配是对字符串的基本操作之一,广泛应用于生物信息学、信息检索、拼写检查、语言翻译、数据压缩、网络入侵检测等领域,如何简化其复杂性一直是算法研究中的经典问题。字符串的模式匹配实质上就是寻找模式串P是否在主串T 中,且其出现的位置。我们对字符串匹配的效率的要求越来越高, 应不断地改良模 ...
分类:
编程语言 时间:
2020-04-30 21:15:28
阅读次数:
77
正则表达式 [toc] 1. 正则表达式 1.1 正则表达式介绍 1.1.1 什么是正则表达式? 正则表达式就是一种字符串,该字符串通过包含特殊的符号,来描述一类字符串的公共特点,进而可以使用该模式串来匹配并获取文本内容中的所有符合该特点的字符串,也可以使用该模式来对一些字符串进行匹配,观察这些字符 ...
分类:
其他好文 时间:
2020-04-14 00:56:09
阅读次数:
77
经过几天断断续续的思考,KMP总算是差不多搞懂了。 主串s和模式串p进行匹配,p在s中出现的位置。 代码如下: #include <cstdio> #include <iostream> using namespace std; const int N = 10001, M = 100001; ch ...
分类:
其他好文 时间:
2020-04-12 14:09:23
阅读次数:
57
题意:给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过。 思路:建完tire,fail之后,开始跑自动机,然后对于走过的点,给一个标记,防止多次计算即可 为啥呢,因为求得是有多少模式串在文本串出现过,而不是出现次数 1 #include<bits/stdc++.h> 2 using na ...
分类:
其他好文 时间:
2020-04-09 15:27:35
阅读次数:
72
[TOC] 在谈 AC 自动机之前,我们需要学习一些预备知识,请你先详细阅读本博客的前两部分。 KMP 算法 BF 算法 BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,不是要匹配字符吗?那我一个一个直接匹配不就好啦。BF算法的思想就是将目标串 S 的第一个字符与模式串 T 的 ...
分类:
其他好文 时间:
2020-04-08 22:23:14
阅读次数:
82