- 4
- 0
- 约1.93万字
- 约 81页
- 2018-12-03 发布于广西
- 举报
一旦失配,应从模式串T中第next[ j ]个字符开始与S的失配点i重新匹配。 next[ j ]= 0 当j=1时 max { k |1kj 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ } 1 其他情况 图5-6 next[j]的求解 推算模式串“a b a a b c a c”的next函数值如下: j=1时, next[ j ]≡ 0;因为属于“j=1”; j=2时, next[ j ]≡ 1;因为属于“其他情况”; j=3时, k={2},只需查看‘T1’=‘T2’; j=4时, k={2,3},要查看‘T1’=‘T3’ 和‘T1T2’=‘T2 T3’ j=5时, k={2,3,4},要查看‘T1’=‘T4’ 、‘T1T2’=‘T3T4’ 和‘T1T2T3’=‘T2T3T4’ 由上面的求解可得到如下的next的求解值。 可能失配位 j: 1 2 3 4 5 6 7 8 模 式 串 T: a b a a b c a c 新匹配位 next[j] : 0 1 1 2 2 3 1 2 KMP算法在形式上与简单模式匹配算法极为相似,不同之处仅在于当匹配过程产生失败时,指针i不变,指针j退回到next[j]所指示的位置上重新进行比较,并且当指针j退回到0
原创力文档

文档评论(0)