私は単語ゲームを作成していますが、同じ文字を持つ単語をリスト内で見つけて並べる方法を考えています。私のゲームでは、5 つの文字が表示され、文字を並べ替えて単語を作成する必要があります。したがって、単語は「どんぐり」である可能性がありますが、これらの 5 文字は「narco」または「racon」を構成することもできます。これらは、私の .txt 辞書 (左側に表示) にある単語です。
例、右側の 3 行目:
ヒントやヘルプをいただければ幸いです。
私は単語ゲームを作成していますが、同じ文字を持つ単語をリスト内で見つけて並べる方法を考えています。私のゲームでは、5 つの文字が表示され、文字を並べ替えて単語を作成する必要があります。したがって、単語は「どんぐり」である可能性がありますが、これらの 5 文字は「narco」または「racon」を構成することもできます。これらは、私の .txt 辞書 (左側に表示) にある単語です。
例、右側の 3 行目:
ヒントやヘルプをいただければ幸いです。
これは典型的なアナグラムの問題です。単語をソートされたバージョンのハッシュマップ キーで格納できるため、次のようなリストになります。
clay, lacy, note, tern, tone, nest, sent
のハッシュマップとして保存されます
acly => {clay , lacy}
enot => {tone, note}
enst => {sent, nest}
enrt => {tern}
これを構築するのは簡単です、sudoアルゴリズムは
Hashmap<String, HashSet<String>> h;
foreach word in list
String sorted = sort(word); \\so if word is sent, sorted is enst
HashSet<String> currentSet = h.get(sorted);
currentSet.add(word);