我在Python中有一组子字符串,并且想查找字符串中每次出现的子字符串。例如
# inputs
needles = {'love', 'hot', 'dogs'}
haystack = "I love hot dogs; hot dogs are delicious."
# output
indexes = {('love', 2), ('hot', 7), ('dog', 11), ('hot', 17), ('dog', 21)}
我目前正在使用一种蛮力方法来查找字符串中每个子字符串的所有出现,如果k,n和m是最长字符串的长度,针数和干草堆的长度。我想知道是否可以使用trie或其他任何方法来加快速度。
编辑:许多针都有一个以上的单词。
答案 0 :(得分:0)
有special string searching algorithms旨在查找文本中的多种模式。
也许最有名的是 Aho-Corasick ,我看到了很多Python的实现(尽管不能说是最好的)。 Arbitrary found one。