|
|
1
3
Knuth—Morris—Pratt可以直接修改,以在草垛串中的每个位置产生针串最长前缀的长度,匹配结束于该位置。使用KMP计算字符串中的Pat1和反向(字符串)中的Pat2的信息,然后遍历字符串中的每个位置,寻找最大前缀/后缀长度。 字符串=“OBANTAO”和Pat1=“BANANA”和Pat2=“SIESTA”的示例:
反转第二个数组并按分量求和。
|
|
|
2
0
我尝试用Java实现@David Eisentat解决方案。 它在O(2n)时间和O(2(n+1))辅助空间中
我们可以为每个数组保留另一个数组来实现KMP算法,而不是将m和n重置为0,因为输入前缀和sufix没有重复的字符序列 |