KMP的Next数组:模式串的前缀与后缀的“相交”长度 KMP算法步骤: 1.先算next数组 2.若失配(此时模式串下标为j),利用Next数组求出失配后滑动的新位置 a.Next[j] \geq 0,则模式串右移 j-Next[j] 位 b.Next[j] = -1,则模式串右移 j+1 位 ...
分类:
编程语言 时间:
2018-12-16 21:45:07
阅读次数:
172
概述 KMP(Knuth Morris Pratt)算法是一种用来解决字符串匹配问题的算法,时间复杂度为O(n+m),主要思想是当模式串与主串发生失配时,不必从头开始匹配,而是滑动到已经匹配的部分 next数组 在KMP算法中,next数组用来存储一段子串最大相等前后缀的长度加1,例如长度为i+1的 ...
分类:
编程语言 时间:
2018-12-16 17:10:11
阅读次数:
166
(一)字符串题目的特点 ①广泛性 字符串可以看作字符类型的数组,与数组的排序、查找、调整有关 很多其他类型的题可看作字符串类型的题 ②需要掌握的概念 回文 子串(连续) 子序列(不连续) 前缀树(Trie树) 后缀树和后缀数组 匹配 字典序 ③需要掌握的操作 与数组有关的操作:增删改查 字符的替换 ...
分类:
编程语言 时间:
2018-12-15 11:58:08
阅读次数:
165
rt 明明能哈希为什么要KMP/AC自动机/后缀数组/后缀自动机/后缀树呢??????? 【XSY2361】LCP 给定串 S,m 组询问 (X, Y, L, R): 求 S[X:Y] 与 S[L:R] 的最长公共前缀. 1 #include<algorithm> 2 #include<iostre ...
分类:
其他好文 时间:
2018-12-14 13:01:33
阅读次数:
172
本篇文章主要详细介绍$AC$自动机的$fail$指针: 如果有什么不完善的地方,请联系我$qwq$ 前置知识: 1、建议学一下$kmp$算法 2、$Trie$ 导入: AC自动机是用来解决多模板匹配问题的,但是,如果就单纯的把每个模板串拼接在一起,或者单个单个匹配的话,肯定是会超时的,而它的思想是把 ...
分类:
其他好文 时间:
2018-12-13 14:59:36
阅读次数:
258
解释器模式是一种不很常用的模式,但是比如正则表达式就是一种解释器模式的思维,所以尽管实际编码中不常用,理解解释器模式的含义很重要,本文对解释器模式进行了简单的介绍,并且给出了Java代码示例,介绍了解释器模式的意图结构。 ...
分类:
其他好文 时间:
2018-12-12 13:22:28
阅读次数:
172
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长度乘以s2起始点为左边界的回文串的数量,累加就是答案。 所以先求s1,再求以每个点为左边界的回文串的 ...
分类:
其他好文 时间:
2018-12-11 17:18:09
阅读次数:
188
Codeforces 每日刷题记录 打‘+’是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水。 1.+CF1073E:状压,数位dp,官方题解std骚操作 2.CF1072A 3.CF1072B 4.CF1072C 5.CF1068C:读题恶心 6.CF1073D:猜复杂度, ...
分类:
其他好文 时间:
2018-12-10 21:55:58
阅读次数:
415
本文和python关系不大,前面几节是为了使用python中的正则,后面只关注正则本身。 0. Python re 方法 1. 匹配纯文本 普通字符串匹配 结果 2. 匹配任意字符 字符可以匹配任何一个单个的字符(除换行符), 转义元字符(特殊含义的字符)。 结果 3. 匹配一组字符 使用元字符 来 ...
分类:
其他好文 时间:
2018-12-10 20:51:56
阅读次数:
257
# 计算器 # re模块 # 正则表达式 —— 字符串匹配的 # 学习正则表达式 # 学习使用re模块来操作正则表达式 while True: phone_number = input('please input your phone number : ') if len(phone_number)... ...
分类:
其他好文 时间:
2018-12-08 22:42:15
阅读次数:
205