0

私は単語ゲームを作成していますが、同じ文字を持つ単語をリスト内で見つけて並べる方法を考えています。私のゲームでは、5 つの文字が表示され、文字を並べ替えて単語を作成する必要があります。したがって、単語は「どんぐり」である可能性がありますが、これらの 5 文字は「narco」または「racon」を構成することもできます。これらは、私の .txt 辞書 (左側に表示) にある単語です。

例、右側の 3 行目:

ヒントやヘルプをいただければ幸いです。

4

1 に答える 1

0

これは典型的なアナグラムの問題です。単語をソートされたバージョンのハッシュマップ キーで格納できるため、次のようなリストになります。

  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);
于 2012-08-14T07:58:29.867 に答える