已知字符串S为”abaabaabacacaabaabcc”,模式串t为”abaabc”。采用KMP算法进行匹配,第一次出现“失配”(s[i]!=t[j])时,i=j=5,则下次开始匹配时,i和j的值分别是:i=5 j=2
由题中“失配s[i]!=t[j]时,i=j=5”,可知题中的主串和模式串的位序都是从0开始的。按照next数组生成算法,对于t有:
编号:0 1 2 3 4 5
t :a b a a b c
next :-1 0 0 1 1 2 next数组的求法
依据kmp算法“当失配时,i不变,j回退到next[j]的位置并重新比较”,当失配s[i]!=t[j]时,i=j=5,next[j]=next[5]=2(位序从0开始)。从而最后结果应为:i=5 j=2。