0

我正在制作一个文字游戏,我想知道如何在具有相同字母的列表中查找和排列单词。在我的游戏中,你会看到 5 个字母,然后你必须重新排列这些字母 tp 组成一个单词。所以这个词可以是“acorn”,但是这 5 个字母也可以组成“narco”或“racon”,它们是我的 .txt 字典中的词(如左图所示)。

例如,右边的第三行:

任何提示或帮助将不胜感激!

4

1 回答 1

0

这是一个典型的字谜问题,您可以将单词作为 Hashmap 键存储在单词的排序版本上,因此列表如下

  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 回答