我正在尝试在大文本中查找包含子字符串(作为输入)的单词。文本如下所示:*america*python*erica*escape*.. 示例:输入:“rica” => 输出:america,erica
我使用后缀数组。
我的伪代码(pythonlike)是:
firstChar=input[0] // the first character of input
suffixArray=getSuffixArray(text) // suffix array
result=[]
for every index of suffix array which points to firstChar:
length=len(input)
indexText=text[suffixArray[index]]
indexes=[]
if input in text[indexText: indexText+length]:
word=find whole word containig this index between '*'
result.append(word)
这行得通,但是太慢了。LCP 阵列应该改善算法的运行时间,但我不知道如何。你能给我一个建议吗?
提前致谢!