串KMP

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

匹配

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,059评论 0 13
  • 字符串匹配KMP算法详解 1. 引言 以前看过很多次KMP算法,一直觉得很有用,但都没有搞明白,一方面是网上很少有...
    张晨辉Allen阅读 2,452评论 0 3
  • 很多文章在讲PrefixSpan的时候,不注重基础概念的描述,而只是在乎算法的流程,这样会使得只是照葫芦画瓢,又或...
    Milkmilkmilk阅读 8,957评论 0 3
  • 高级钳工应知鉴定题库(858题) ***单选题*** 1. 000003难易程度:较难知识范围:相关4 01答案:...
    开源时代阅读 5,982评论 1 9
  • 求模式串在目标串中出现的次数和位置 next数组的一些性质 KMP最小循环节、循环周期:定理:假设S的长度为len...
    哟破赛呦阅读 356评论 0 1