gpt4 book ai didi

string - 了解 Knuth-Morris-Pratt 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:28:56 27 4
gpt4 key购买 nike

有人能给我解释一下吗?我一直在阅读它,但仍然很难理解。

文本:ababdbaababa
图案: ababa

ababa 的表是 -1 0 0 1 2。

我想我明白表格是如何构建的,但是,我不明白一旦发生不匹配如何移动。好像我们换类的时候连 table 都不用?

我们什么时候使用表格?

最佳答案

这里我简要描述了计算前缀函数和移动这里的文本。

enter image description here

更多信息:Knuth–Morris–Pratt string search algorithm

在文本中移动:

Text:     ABC ABCDAB ABCDABCDABDE
Pattern : ABCDABD

场景 1 - Pattern 和 Text 中有一些匹配的字符。
例如 1:这里有 3 个匹配的字符。

enter image description here

从表中获取 3 个字符的值。 (索引 2,ABC)即 0因此 shift = 3 - 0 即 3

enter image description here

例2:这里有6个匹配的字符。

enter image description here

从表中获取 6 个字符的值。 (索引 5,ABCDAB)即 2因此 shift = 6 - 2 即 4

enter image description here

场景 2 - 如果没有匹配的字符则移动一个。

关于string - 了解 Knuth-Morris-Pratt 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com