- 3
- 0
- 约2.42千字
- 约 22页
- 2017-08-20 发布于河南
- 举报
字符串匹配问题(本科生教材)
KMP算法;1、前缀函数;2、例2; c d a b a b a b a b ?; ? 当p.c[q]与t.c[j]不相等时,模式串p向右滑动多少个位置,再比较,既不丢失可能的匹配,又不做回溯?
以例2为例,展示匹配和滑动的过程!
1) 求p0,p1,…,pq-1中最大相同的前缀与后缀的长度k;
2) next[q]=k
即:
当p.c[q]与t.ch[j]不相等时,模式串p向右滑动q- k 个位置,继续比较p.c[q]和t.c[j]。;依次类推,直至出现下列两种情形之一。
(1) q退到某个next值,next[next…next[ ]]]时,比较i位置的字符,如相等,若此时若还不是完全匹配(q≠m),则q与j值各自增加1,继续比较下一字符
(2)如,k=-1时,模板退回到第1个位置、主串向前进一个,继续比较。
当算法中出现p.ch[q]=t.ch[i],且q=m时,显然找到了一个匹配p[0..m-1]=t[i-m..i-1]这是算法返回主串中出现匹配的第一个字符的位置i-m.;3、KMP算法;模板向后滑动 ;模板向后滑动 ;4、求前缀函数;由p的前缀函数的定义易知next[0]=-1 next[1]=0 。
用数学归纳法来计算前缀函数next的值:
对于
您可能关注的文档
最近下载
- 高压电工作业教案.doc VIP
- 边坡治理施工组织设计.doc VIP
- 2025年广东省中山市中考历史二轮跨学科复习:主题五+生态环境与社会发展++课件.pptx VIP
- 2025年湖北省中考历史二轮复习:跨学科学习主题四 历史上水陆交通的发展++课件.pptx VIP
- 2024年历史中考总复习第三部分跨学科主题学习主题三历史上水陆交通的发展.pptx VIP
- 初中历史中考复习课教学设计:历史上的中外文化交流(主题三).docx VIP
- 跨学科主题学习_《小货币,大历史》.pptx VIP
- 2023年跨学科主题学习——小货币大历史.pptx VIP
- 传承民族气节,崇尚英雄气概——中华英雄谱-初中历史学科跨学科主题研究课件(2022新课标版·七年级中国古代史部分).pptx VIP
- 医师年度工作总结简短9篇.docx VIP
原创力文档

文档评论(0)