字符串
文章平均质量分 50
字符串总结
weixin_52109411
这个作者很懒,什么都没留下…
展开
-
算法学习:AC自动机
肝了好几天,太抽象,理解还需靠题目慢慢加深 字典树和KMP的思想相结合的产物 核心在于跳fail指针 匹配失败,则跳向父节点fail指针指向的儿子结点 P3808 【模板】AC自动机(简单版) 题目描述 给定 nn 个模式串 s_is i 和一个文本串 tt,求有多少个不同的模式串在文本串里出现过。 两个模式串不同当且仅当他们编号不同。 输入格式 第一行是一个整数,表示模式串的个数 nn。 第 22 到第 (n + 1)(n+1) 行,每行一个字符串,第 (i + 1)(i+1) 行的字符串表示编号为原创 2021-10-30 01:08:28 · 87 阅读 · 0 评论 -
KMP——字符串匹配算法
KMP算法挺抽象,第一次接触理解不够深,以后通过题目慢慢了解。 设字符串a长度为n,待匹配子串b的长度为m,暴力枚举法的时间复杂度为log(m*n) 而KMP算法的时间复杂度为log(m+n),因为指向主串i只增不减,避免了多余的回溯。 算法内容: 首先构造一个数组P P[i]存储的是b串前i个字符前缀和后缀相同的最大字符个数 例如b=“ababa”,则p={0,0,1,2,3} 然后是匹配过程,例如: 若让b向右移动一格是没必要的,利用已经预处理好的数组p可以让b向右移动一个前缀的距离,只需j=p[j]原创 2021-09-30 21:04:25 · 84 阅读 · 0 评论