查找并排列列表中具有相同字母的单词

时间:2012-08-14 07:51:18

标签: dictionary ms-word

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

示例,右边第三行:

非常感谢任何提示或帮助!

1 个答案:

答案 0 :(得分:0)

这是一个典型的anagram问题,你可以将单词存储为Hashmap key-ed在单词的排序版本上,所以像

这样的列表
  clay, lacy, note, tern, tone, nest, sent

将存储为

的hashmap
   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);