在提供的字符串中查找各种子字符串

时间:2013-02-17 16:02:19

标签: java python algorithm

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

然后,更难的问题:在haystack中返回第一次出现的substring的索引。由于我没有弄清楚第一部分是正确的,所以我在努力解决这个问题。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

Suffix tree?我相信你们都可以测试子字符串并得到它们的起始索引。