「文字のセットに対して可能なすべての単語を見つける」問題を解決しようとしています。そこにはいくつかの良い答えがありますが、それでも私はそれを理解することができません。
最初のテストでは、辞書全体を配列に入れてから、各文字をループしました。これは超高速ですが、辞書を配列にロードするのに永遠に時間がかかり、大量のメモリを必要とします。
だから私は辞書(750,000)を保存する必要があります文字はSQLデータベースです。
考えられるすべての単語を見つけるには、2つの解決策があると思います。
- 可能なすべての単語を返す事前クエリを作成します
- 可能性のある単語を含むデータベースの一部を返す単純なクエリを作成し、その配列をすばやくループして単語を検証します。
問題は?: それは超高速でなければなりません。iPhone 4は、ゲームの妨げにならないように、5〜6秒以内にすべての可能な単語を取得できる必要があります。
同様の質問があります: IOS:Sqlite。記録をすばやく見つける
スルタンの答えは良い考えのようです。ハッシュテーブルを作成してから、次のようにします。
ASCII文字のビットマスク(非ASCIIアルファベットは無視)。位置0のビットは、単語に「a」が含まれ、位置1に「b」が含まれることを意味します。文字に同じビットマスクを作成すると、(wordMask&〜lettersMask)==0などの単語を選択できます。
ビットマスク、ハッシュテーブルをどのように作成し、SQLクエリをどのように構築しますか?
ありがとう