1、应用BF算法求子串"JING"在主串"BEIJING"中的位置,测试起始位置分别为1和5的情况; 2、应用KMP算法求子串"abaabcac"在主串"acabaabaabcacaabc"中的位置,测试起始位置分别为1,10的情况,并写出子串的next[]值和nextval[]的值; 菜单选项为:0、退出;1、BF算法实现;2、KMP算法实现。
时间: 2024-04-22 18:22:02 浏览: 83
我明白了,可以为您解答。
1. BF算法实现:
当测试起始位置为1时,主串"BEIJING"中子串"JING"的位置为2;当测试起始位置为5时,主串"BEIJING"中子串"JING"的位置为-1(即不存在)。
2. KMP算法实现:
当测试起始位置为1时,主串"acabaabaabcacaabc"中子串"abaabcac"的位置为8;当测试起始位置为10时,主串"acabaabaabcacaabc"中子串"abaabcac"的位置为-1(即不存在)。
子串"abaabcac"的next[]值为:-1 0 0 1 1 2 0 1。
子串"abaabcac"的nextval[]值为:-1 0 -1 1 1 2 -1 1。
注意,这里的next[]和nextval[]值可能因为算法实现细节的不同而有所差异。
阅读全文