最初想要一个算法来找到两个 python 字符串之间的最长子字符串。最佳运行时的一般答案是“构建后缀树”,基于线性运行时的在线共识。然而,网上关于这方面的例子为零,这并不奇怪,因为后缀树被认为是非常复杂和不直观的构造。
我实现了一个 DP 解决方案(它仍然是二次的)并且对于我正在尝试做的事情来说太慢了。
尝试使用 python 的 difflib.find_longest_match,它更快(但它仍然不如 id 那样快)。
所以如果有人知道, find_longest_match() 方法使用什么算法?
另外,如果 find_longest_match() 的算法不是最优的,有谁知道哪里可以找到线性最大子串算法是如何实现的。这是一个有点著名的问题,奇怪的是在线上的最优解决方案如此之少甚至没有。或者我可能只是被误导了,下限是二次的,甚至是 nlogn。
谢谢。