与kmp算法混淆

问题描述

谁能给我解释一下...当我们匹配的模式与主字符串的字母不同时,kmp算法会起作用... 例如。字符串:- abcdbcx 图案:- 公元前 如果是,那么请解释如何。

解决方法

如果字符串的第一个字母与模式的第一个字母不匹配,则它移动到字符串的第二个字母并将其与模式的第一个字母进行比较。当没有初始匹配时,它的作用就像一个常规的字符串搜索。

区别在于当字符串的一个或多个字母与模式的首字母匹配时,会发现不匹配。在这种情况下,主字符串中的位置比它已经所在的位置提前 1 ,并且它使用预先构建的表来确定它应该重置到模式中的哪个位置。