请问有人能就在查找一个字符串是否为另一个字符串的子字符串时选择KMP和后缀树之间的优缺点给一些建议吗?谢谢。
提前致谢, Lin
请问有人能就在查找一个字符串是否为另一个字符串的子字符串时选择KMP和后缀树之间的优缺点给一些建议吗?谢谢。
提前致谢, Lin
运行时和内存复杂度大致相同。您可以在O(N)中准备模式,然后可以在O(M)(n,m为字符串长度)中进行搜索。
Suffix树可以执行一些可能不必要的操作,这对于您的应用程序可能并非必需。
在KMP中,您准备了一个搜索模式,然后可以轻松地在多个字符串中查找它。
在Suffix树中,您准备要搜索的文本,然后可以轻松地在其中查找许多模式。尽管使用的内存是线性的,但常数很大,因此需要更多的内存。
KMP通常比Suffix树更容易编写。