2011-12-07 11 views
0

人がテキストフィールドにテキストを入力すると、テキストボックス(チャット用)に追加される前に、検索したい特定の単語があります。これには、宇宙船のワードスペースがスプライスされていない例が含まれます。テキストの文字列内の単語の効率的なフィルタリング

この種の目的には通常どのようなアルゴリズムが使用されていますか?

私は各単語のテキストを反復考えることができる唯一のアルゴリズム:

for each word to filter 
for each char in string 
if the substring from index of the first letter of word to the current index == word, do something with the word 
end for each 
end for each 

はそれを行うためのより良い、より多くのO(n)の方法はありますか?

おかげ

+0

具体例はありますか?私はあなたが何を求めているのかよく分かっているとは思わない。 –

答えて

1

Triesはかなり正確にこの問題のために使用することができます。

0

この種の目的には通常どのようなアルゴリズムが使用されていますか?

正規表現。 RE2を使用すると、最悪の場合のO(n)が一致します。 (space ?ship|chocolate ?mousse)などと一致するようにします。

0

基本的に、ターゲット文字列の入力文字列のセットを検索しようとしています。あなたはこれらのアルゴリズム

Rabin–Karp algorithm

  • Aho–Corasick string matching algorithm
    1. を使用することができますしかし、またやるだろう置き換えるユーザーのタイピング速度に簡単な正規表現を維持します。

  • 関連する問題