【正确答案】正确答案:(1)当模式串中第一个字符与主串中某字符比较不等(失配)时,next[1]=0表示模式串中已没有字符可与主串中当前字符s[t]比较,主串当前指针应后移至下一字符,再和模式串中第一个字符进行比较。 (2)当主串第i个字符与模式串中第j个字符失配时,若主串f不回溯,则假定模式串第k个字符与主串第i个字符比较,k值应满足条件1<k<j并且。
"
p
1
……p
k-1
"
=
"
p
i-k+1
…p
i-1
"
,即k为模式串向后移动的距离,k值可能有多个,为了不使向右移动丢失可能的匹配,k要取大,由于max{k}表示移动的最大距离,所以取max{k},k的最大值为广1。 (3)在上面两种情况外发生失配时,主串指针i不回溯,在最坏情况下,模式串从第1个字符开始与主串第i个字符比较,以便不丢失可能的匹配。
【答案解析】