已知主串s=’ADBADABBAABADABBADADA’,模式串pat=’ADABBADADA’。写出模式串的nextval函数值,并由此画出KMP算法匹配的全过程。
(由演示程序得知)nextval函数值为0 1 0 2 1 0 1 0 4 0 在第12个字符处发现匹配!s=’ADBADABBAABADABBADADA’pat=’ADABBADADA’
举一反三
- 已知主串s=’ADBADABBAABADABBADADA’,模式串pat=’ADABBAD’。写出模式串的nextval函数值_______。
- 已知模式匹配的KMP算法中模式串T=”adabbadada”,其next函数的值依次为____。
- 设定目标串(主串)和模式串,求模式串的next数组和改进nextval数组,然后分别给出使用Brute-Force和KMP(next数组和改进的nextval数组两种)算法进行模式匹配时的比较过程、比较次数及匹配结果,模式匹配时从目标串的第1个字符开始。 目标串:abcaabbabcabaacbacba 模式串:abcabaa
- 已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的next和nextval函数值
- 设目标串为s-"abcabbaaabababaabca”,模式串为p "babab".不写算法,只画出利用KMP算法进行模式匹配时的每一趟的匹配过程。
内容
- 0
主串为’abaababaddecab’ ,模式串为’abad’。使用KMP算法需要()次匹配成功。
- 1
假设主串S=‘aaabbbababaabb’,模式串T=‘abaa’,用串匹配算法从主串的第6个字符开始模式匹配,需要做趟匹配,方能找到匹配串。
- 2
串的模式匹配算法有BF算法和KMP算法。
- 3
KMP算法的特点是在模式匹配时指示主串的指针()。
- 4
设字符串S=“aabaabaabaac”,P=“aabaac”, (1)分别给出S和P的next值和nextval值; (2)若S作主串,P作模式串,请给出利用BF算法和KMP算法的匹配过程。 tip:若题目要求计算了nextval值,且没有特别说明,则画匹配过程一般是按照改进后的KMP算法进行