我想了解 Knuth-Morris-Pratt 算法的工作原理。我从普林斯顿大学https://www.youtube.com/watch?v=iZ93Unvxwtw观看了本教程。在这个视频中,他们使用了一个表格,字母的长度 = 行数,图案的长度 = 列数。将表格视为 DFA,用于检测文本中的模式。我认为这种方法很有趣,但维基百科说 Knuth-Morris-Pratt 算法使用前缀表,前缀长度只有一行。两者都有效,并且在速度方面都是 O(n+m)(n 是文本的长度,m 是模式的长度)。但 DFA 版本需要更多空间。但问题是哪个是真正的 Knuth-Morris-Pratt 算法,哪个是微分?
问问题
659 次