【问题标题】:Confused with kmp algorithm与 kmp 算法混淆
【发布时间】:2021-07-15 14:36:12
【问题描述】:

谁能给我解释一下...当我们匹配的模式不以与主字符串相同的字母开头时,kmp算法将起作用... 例如。字符串:- abcdbcx 模式:- 公元前 如果是,请说明方法。

【问题讨论】:

    标签: algorithm knuth-morris-pratt


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢先生,但请您详细说明prefixArray查找算法.....当我们为abcdbcx准备prefixArray时......然后会发生什么?
    • @AbhishekSingh 维基百科的文章对此进行了详细描述:en.wikipedia.org/wiki/…
    • 注意:我已经更正了最后一句中的一个错误。
    猜你喜欢
    • 2011-06-28
    • 2017-09-29
    • 2018-04-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2020-10-25
    相关资源
    最近更新 更多