0

巨大なテキストに部分文字列 (入力として) を含む単語を見つけようとしています。テキストは次のようになります: *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 配列はアルゴリズムの実行時間を改善するはずですが、その方法がわかりません。アドバイスをいただけますか?

前もって感謝します!

4

1 に答える 1