我正在制作文字游戏,我想知道如何在列表中找到并排列具有相同字母的单词。在我的游戏中,你会看到5个字母,然后你必须重新排列字母tp。所以这个词可能是“橡子”,但这5个字母也可以组成“narco”或“racon”,它们是我的.txt字典中的单词(如左图所示)。
示例,右边第三行:
非常感谢任何提示或帮助!
答案 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);