![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 95
Jarden_
这个作者很懒,什么都没留下…
展开
-
KMP算法是怎么被设计出来的
定义 我们假设要在主串中寻找子串出现的所有位置 我们记主串中的开始位置为匹配位置,如在 “abc” 中匹配 “bc” ,则匹配位置为 (2) 暴力 我们把匹配过程拆解为 枚举匹配位置 验证主串从匹配位置开始是否一一匹配子串 以此,有显然的 O(nm)O(nm)O(nm) 算法 基于优化推出KMP 主串:ABCABCABD 子串:ABCABD 枚举匹配位置 (1),已经验证了ABCAB是匹配的,现在发现C和D匹配不上 显然我们该要枚举下一个匹配位置,但是我们其实已经在刚刚的验证过程中知道了下一个匹配位置原创 2022-01-26 11:44:33 · 1667 阅读 · 0 评论 -
核苷酸
题目描述 DNA中包含四种核苷酸,上面具有不同的含氮碱基,分别是:腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)。我们可以用形如ATTGCA…的字符串来代表一条脱氧核苷酸序列。 我们需要追踪一段高变异生物的核苷酸序列。在这种生物中,其DNA序列很容易发生替换,即将某一位的核苷酸替换为其他核苷酸。 我们有一段感染串,这一条DNA单链极有可能替换原来DNA链中的核...原创 2018-08-14 20:30:21 · 919 阅读 · 0 评论 -
后缀数组SA
算法问题描述 给定一个字符串s,按字典序排序s的所有子串 算法思想 鬼知道什么思想,好像没有什么思想。哦,想起来了,是倍增。 考虑最简单的后缀间O(n)O(n)O(n)比较和快排O(nlogn)O(nlogn)O(nlogn),总复杂度O(n2logn)O(n2logn)O(n^2logn)。考虑优化字符串间的比较,用倍增的思想,假设k/2k/2k/2长度的已经比完了,比较长度为kkk...原创 2018-08-15 16:56:50 · 158 阅读 · 0 评论 -
求回文子串长:Manacher算法(马拉车算法)
算法问题描述 求回文子串 算法思想 字符串的思想一般都是用前面求过的加速后面的,马拉车算法也不例外,先强行搞一个东西,在每个字符中间插入一个不会出现的字符‘#‘’’以处理奇回文和偶回文(代码方便) 如果现在有一个大的以id为对称轴的回文串,现在要更新id右边的某个i的最大回文半径,如果i在id回文串内,是不是可以直接用i的关于id的对称点的回文半径呢? 所以我们分情况讨论一下。记i的...原创 2018-08-20 21:37:58 · 238 阅读 · 0 评论