KMP算法
KMP的重点就是 发现 b 和 c 不匹配时,应该知道指针下一步要移动到哪?
在上面的例子中,字符串1指针 i
不动,字符串2指针 j
回到 b 那里。因为 c 前面的 a 和字符串头部的 a 一样,而 a 在之前的比较中已经验证过可以和字符串1匹配了,因此不需要再比较这个 a 了
由此可以观察到这样的性质:移动到的地方的 k个字符和最前面 k个字符是一样的
buildNext
就是用来标记每个位置上有多长的字符串和开头一样
例题
Last updated
KMP的重点就是 发现 b 和 c 不匹配时,应该知道指针下一步要移动到哪?
在上面的例子中,字符串1指针 i
不动,字符串2指针 j
回到 b 那里。因为 c 前面的 a 和字符串头部的 a 一样,而 a 在之前的比较中已经验证过可以和字符串1匹配了,因此不需要再比较这个 a 了
由此可以观察到这样的性质:移动到的地方的 k个字符和最前面 k个字符是一样的
buildNext
就是用来标记每个位置上有多长的字符串和开头一样
例题
Last updated