私は、レーベンシュタイン距離を介して関連する単語の「ソーシャルネットワーク」を見つけることを含むコードチャレンジをオンラインで行っています。私のレーベンシュタイン関数は正しいです。グローバルセットに再帰的に追加し、タプルのマップをブール値に使用して、単語のペアのレーベンシュタイン距離が1であるかどうかをキャッシュします。コードは5秒で終了することになっています。 これがどのように可能に近いのかわかりません。これを可能にするいくつかのaha洞察があると確信しています。誰もがすぐにそれを見ることができますか?
問題の説明: レーベンシュタイン距離が1の場合、2つの単語は友達です。つまり、単語Xの1文字を追加、削除、または置換して、単語Yを作成できます。単語のソーシャルネットワークは、すべての友達とその友達で構成されます。すべての友達、すべての友達の友達など。この単語リストを使用して、「こんにちは」という単語のソーシャルネットワークの大きさを教えてくれるプログラムを作成します
私の擬似コード:
get_network(friend)
if friend not in network
add friend to network
friends = []
check friend against all words in network
consult cache or calculate lev distance
cache if necessary, append to friends if necessary
for all friends
get_network(friend)
質問を言い換えると、「効率の天文学的な向上を可能にする基本的な洞察は何ですか?」