个人码风:大括号换行,4格缩进,轻微压行,行内空格极随意。 字符串 KMP c++ const int N=1000005; char s[N], t[N]; int len_s, len_t, nxt[N]; void GetNext(char s) { for (int i=2, k=0; iy ...
分类:
其他好文 时间:
2019-03-07 00:48:46
阅读次数:
150
KMP是啥?~~KMP当然是KMPlayer的简称啦~~ KMP算法是用来解决字符串匹配的一种算法,由D.E.Knuth、J.H.Morris和V.R.Pratt同时发现,然后它可以用来干啥呢?我们上个例题: 给定两个字符串$S,T$,问$T$在$S$中出现了多少次,出现的起始位置不同即为不同 $O ...
分类:
编程语言 时间:
2019-03-06 13:42:51
阅读次数:
201
在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re 1. re模块的使用过程 2. re模块示例(匹配以itcast开头的语句) 运行结果为: 3. 说明 re.match() 能够匹配出以xxx开头的字符串 ...
分类:
其他好文 时间:
2019-03-04 09:54:15
阅读次数:
137
吐槽 数据太水了吧,我AC自动机的trie建错了结果只是RE了两个点,还以为数组开小了改了好久 思路 看到多模板串,字符串匹配,且模板串总长度不长,就想到AC自动机 然后用栈维护当前的字符串位置,如果匹配到了,就从栈里逐个弹出对应的字符,并且回溯到匹配这个单词之前的节点 s每个字符最多会被出栈和入栈 ...
分类:
其他好文 时间:
2019-03-01 09:33:56
阅读次数:
178
之前一直有使用python 正则表达式来做中文字符串或者中英文数字混合的字符串的匹配,发现有不少情况下会匹配失灵或者结果混乱,并且在不同操作系统上匹配结果也不一致,查了很久都不知道是什么原因。今天终于彻底弄懂了,原来还是python中对中文的编码问题造成的。 解决办法: step1 在设置默认编码为 ...
分类:
编程语言 时间:
2019-02-27 21:59:25
阅读次数:
249
https://blog.csdn.net/dl962454/article/details/79910744 https://blog.csdn.net/qq_40938077/article/details/80460853 https://blog.csdn.net/liujiuxiaoshi ...
分类:
编程语言 时间:
2019-02-27 01:25:12
阅读次数:
210
KMP的next数组求法是很不容易搞清楚的一部分,也是最重要的一部分。我这篇文章就以我自己的感悟来慢慢推导一下吧!保证你看完过后是知其然,也知其所以然。 如果你还不知道KMP是什么,请先阅读上面的链接,先搞懂KMP是要干什么。下面我们就来说说KMP的next数组求法。KMP的next数组简单来说,假 ...
分类:
编程语言 时间:
2019-02-25 20:10:35
阅读次数:
171
正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。下面来介绍一些基本的规则 1. 正则基本语法 首先有两个特殊的符号 和`$`,他们分别表示一个字符串 ...
分类:
其他好文 时间:
2019-02-25 18:07:14
阅读次数:
187
概述 应用场景: 多模字符串匹配问题 。 KMP解决的问题是两个字符串之间的互相匹配,而如果有多个字符串要和一个字符串进行匹配呢?如果还用KMP的话,复杂度依然上天,所以,一个正常的想法是在KMP的基础上堆数据结构。 所以AC自动机=在Trie树上跑KMP,它其中也存在失配数组,与KMP类似。 初见 ...
分类:
其他好文 时间:
2019-02-24 21:46:05
阅读次数:
245