对于两种字符串搜索算法:KMP和后缀树,在哪些情况下首选?举一些实际的例子。
答案 0 :(得分:11)
如果您必须回答很多问题,例如“大海捞针是否存在?”,那么后缀树会更好。如果您只需要在另一个字符串中搜索一个字符串,KMP就会更好,而不必多次执行。
后缀树是一种更通用的数据结构,因此您可以使用它做更多事情。看看你能用它做什么here。 KMP对于查找字符串是否是另一个字符串中的子字符串非常有用。
您可能还想查看其他算法,例如Boyer-Moore,Rabin-Karp甚至天真算法,因为有些情况(输入),其中一个比其他算法好。
底线是: