想知道是否有人可以在选择KMP和后缀树之间提供一些有关利弊的建议,如果我们想查看字符串是否是另一个字符串的子字符串?感谢。
提前谢谢, 林答案 0 :(得分:2)
运行时和内存复杂性大致相同。你在O(N)中准备模式,你可以用O(M)(n,m长度的字符串)进行搜索。
后缀树可以执行一些可能对您的应用程序不必要的操作。
在KMP中,您可以准备搜索模式,然后您可以轻松地在字符串中查找它。
在后缀树中,您准备要搜索的文本,然后您可以轻松地在其中查找许多模式。即使内存使用是线性的,常量也很大,因此需要更多内存。
KMP通常比后缀树更容易编码。