0

我的面试问题得到了这个。给定一个字符串数组和一个字符串(干草堆),获取该字符串数组并找出数组中的每个字符串是否是干草堆的子字符串的最快算法是什么。我认为最快的算法是找到 haystack 的所有子字符串并将它们存储在一个集合中,然后检查数组中的每个字符串是否属于集合,但被告知这不是最快的方法。

然后,更难的问题:返回大海捞针中第一次出现子字符串的索引。由于我没有得到正确的第一部分,所以我在这一部分上苦苦挣扎。

4

2 回答 2

3

听起来像是Aho-Corasick算法的工作。

于 2013-02-17T16:05:48.410 回答
0

后缀树?我相信您既可以测试子字符串并获得它们的起始索引。

于 2013-02-17T16:34:23.177 回答