串KMP

作者: 啦啦啦_9a5f | 来源:发表于2019-10-26 21:41 被阅读0次

KMP算法——改进的模式匹配

主串为'a b a b c a b a a c b a b ',子串'a b c a c'

  • 'a'前缀后缀都是空集,最长相等前后缀长度为0
  • 'a b'前缀为{a},后缀为{b},{a}并{b}=空,最长相等前后缀长度为0
  • 'a b c'前缀为{a,ab},后缀为{b,bc},{a,ab}并{c,cb}=空,最长相等前后缀长度为0
  • 'a b c a'前缀为{a,ab,abc},后缀为{a,ac,acb},{a,ab,abc}并{a,ac,acb}={a},最长度相等前后缀长为1
  • 'a b c a c'前缀为{a,ab,abc,abca},后缀为{c,ac,cac,bcac},{a,ab,abc,abca}并{c,ac,cac,bcac} = 空,最长度相等前后缀长为0

字符串'abcac'的部分匹配值为00010

编号 1 2 3 4 5
s a b c a c
next 0 0 0 1 0
移动位数 = 已匹配的字符数 - 对应的部分匹配值

第一次匹配:

主串  a b a b c a b c a c b a b
子串  a b c

移动位数 = 2 - 0 = 2
第二次匹配:

主串 a b a b c a b c a c b a b
子串       a b c a c

移动位数 = 4 - 1 = 3
第三次匹配:

主串  a b a b c a b c a c b a b
子串                 a b c a c

匹配

相关文章

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • KMP算法——寻找子串位置

    KMP算法——寻找子串位置 1、KMP算法简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J....

  • KMP字符串匹配

    KMP字符串匹配

  • 09--KMP

    [toc] KMP算法原理 KMP思想 假设字符串abcdefgab和模式串abcdex,进行匹配,当匹配到x位置...

  • 字符串匹配KMP算法

    假设我们的字符串母串是,子串是,我们想找到子串在母串中出现的位置并统计总的出现次数,可以使用KMP算法。KMP算法...

  • 串KMP

    KMP算法——改进的模式匹配 主串为'a b a b c a b a a c b a b ',子串'a b c a...

  • 串+KMP

    字符串 串的存储结构 1.定长顺序存储表示用一组地址连续的存储单元 2.堆分配存储表示仍以一组地址连续的存储单元存...

  • 串 - KMP

    1.引子 对于如何求next数组以及next数组的推导比较晦涩难懂 我拜读了很多文章后,感觉此篇文章利用块对称性...

  • 算法(2)KMP算法

    1.0 问题描述 实现KMP算法查找字符串。 2.0 问题分析 “KMP算法”是对字符串查找“简单算法”的优化。 ...

  • KMP

    KMP有什么用 KMP主要应用在字符串匹配上。 KMP的主要思想是「当出现字符串不匹配时,可以知道一部分之前已经匹...

网友评论

      本文标题:串KMP

      本文链接:https://www.haomeiwen.com/subject/ryluvctx.html