字符串算法
文章平均质量分 64
Liukairui
这个作者很懒,什么都没留下…
展开
-
字符串算法总结——KMP算法
KMP算法 刚开始学字符串算法的时候其实是十分抵触的,暴力匹配效率也不低嘛,但是在做题的时候才发现数据量真的很大,暴力还是炸了 所以还是乖乖的学字符串算法吧 先说几个字符串算法中的常用概念吧 文本串 :已有的长长的字符串(一般我写成T) 模式串 :要被查询的内容,就是说在文本串中要查找模式串(一般我写成P)(文本 串就是长的,模式串就是短的,要在文本串里找模式串,中华文化博大...原创 2018-06-09 15:11:52 · 460 阅读 · 0 评论 -
字符串算法总结——扩展KMP算法
扩展KMP算法 功能:处理字符串 S 的所有后缀与字符串 T 的最长公共前缀。 需要的数组 1.Next数组 next[i] 表示后缀 i 即 Ti⋯∣T∣ 与 T 的最长公共前缀。 例如 数组索引 1 2 3 4 5 6 7 8 9 字符串数组 a a a b a a a a b next...原创 2018-06-09 15:20:35 · 340 阅读 · 0 评论 -
字符串算法总结——字典树
字典树 好不容易不用学EXKMP,开森,实际上字典树很简单,我们看: 已知有 n 个长度不一定相同的母串,以及一个长度为 m 的模式串 T,求该模式串是否是其中一个母串的前缀。如果将模式串 T 挨个去比较,则算法复杂度会很高,达到 O(n×m),是否有高效的方法呢? 已知一个长度为 n 的字符串 S,求该字符串有多少个不相同的子串。朴素的做法,可以先枚举出所有的子串,这样时间复杂度为 O(n...原创 2018-06-09 15:43:52 · 1377 阅读 · 0 评论 -
字符串算法总结——AC自动机
AC自动机一种将 Trie 树和 KMP 相结合的算法。AC 自动机有以下三个过程:建立 Trie 树、建立失败指针、字符串匹配。 建立 Trie 树。这一步操作和 Trie 树的一样,将若干个模式串建立起一棵 Trie 树。 建立失败指针。这一步类似于 KMP 算法中建立 next 数组,同学们记得 KMP 中提到的失败指针 next 作用么?这是为了方便后续的匹配操作,当第 i 位失配时,...原创 2018-06-09 15:48:58 · 408 阅读 · 0 评论