title: 前缀函数与KMP算法 date: 2020-08-05 tags: 算法 字符串 OI categories: 技术 因为大二的时候全程划水,导致我对KMP只听说过名字。老师似乎都没展开讲,我记得是有一节下课时说这个算拓展内容,可以自己回去研究,所以我印象中还蛮难的。 前段时间在廖雪峰 ...
分类:
编程语言 时间:
2020-08-06 09:21:03
阅读次数:
75
简介正则表达式其主要作用是通过一些拥有特殊含义得字符,完成日常工作中我们需要得特定字符串匹配,或者从输出内容中匹配出符合我们需要得内容。分类基础正则表达式扩展正则表达式基础正则表达式扩展正则表达式
分类:
系统相关 时间:
2020-08-03 18:42:50
阅读次数:
85
package newleetcode;/** * leetcode20.strStr匹配字符串 * 给定一个主串和一个匹配字符串 * 在主串中寻找匹配字符串并返回下标 */public class LeetCode28 { //KMP算法 //dp前一个括号代表匹配状态 private int[] ...
分类:
编程语言 时间:
2020-08-01 09:21:06
阅读次数:
94
1.1BF算法 其实就是暴力解法,直接双重循环,干就完事了。虽然算不上什么好方法,但是非常简单。对于所有的暴力算法,我们应该思考如何进行优化,比如BF算法,当我们遇到不匹配字符的时候,只能从头的下一个字符开始匹配。这样其实做了很多无用的重复工作。那么我们可以怎样优化呢?下面介绍两种。二者的思想都是避 ...
分类:
编程语言 时间:
2020-08-01 00:11:36
阅读次数:
89
void getnxt(char *s,int *next) { int k=-1; int j=0; pext[j]=-1; while(j<len) { if(k 1 || s[j]==s[k]) { k++; j++; pext[j]=k; } else { k=pext[k]; } } } ...
分类:
编程语言 时间:
2020-07-28 10:18:56
阅读次数:
78
字符串整理(Manachar,KMP,扩展KMP,ACAM,SA,SAM,最小表示法) 基础 字符集$\sum$:一个字符集是一个建立了全序关系的集合,即任意属于$\sum$的元素可以比较,字符集中的元素叫做字符 字符串:一个字符串$S$将n个字符顺次排列组成,$n$为$S$的长度,计作$|S|$, ...
分类:
其他好文 时间:
2020-07-26 01:32:53
阅读次数:
67
##A. string 对于这类字符串匹配题,有个套路是直接用 \(FFT\) 优化。 然后发现这题字符集很小,所以枚举一个字符,将匹配串中的这个字符设为 $1$,模式串中的非这个字符设为 $1$。 然后用一些技巧优化一下,就可以用 \(|\sum|+1\) 次长度为 \(n\) 的 \(DFT\) ...
分类:
其他好文 时间:
2020-07-26 01:19:58
阅读次数:
62
扩展KMP 舞蹈链 卢卡斯定理/扩展卢卡斯 莫比乌斯反演 线段树分裂 LCT manacher 回文自动机 点分治 ...
分类:
编程语言 时间:
2020-07-20 23:01:57
阅读次数:
117
[USACO15FEB]Censoring S「KMP算法」 题目描述 原题来自:USACO 2015 Feb. Silver 给出两个字符串$S$和$T$,每次从前往后找到$S$的一个子串$T$ 并将其删除,空缺位依次向前补齐,重复上述操作多次,直到$S$串中不含$T$串。输出最终的$S$串。 输 ...
分类:
编程语言 时间:
2020-07-20 13:09:46
阅读次数:
57
KMP算法 给定文本串A、模式串B,求模式串B在文本串A中出现的次数。 设文本串A的长度为n,模式串B的长度为m 暴力:二重循环+回溯 复杂度 O(n*m) KMP: 将复杂度优化到O(n+m) 本篇文章是我初学KMP算法所写,如果有错误欢迎指出 另外本文的KMP算法的实现方式较常规的实现效率似乎低 ...
分类:
编程语言 时间:
2020-07-20 10:19:41
阅读次数:
95