我正在制作一个文字游戏,我想知道如何在具有相同字母的列表中查找和排列单词。在我的游戏中,你会看到 5 个字母,然后你必须重新排列这些字母 tp 组成一个单词。所以这个词可以是“acorn”,但是这 5 个字母也可以组成“narco”或“racon”,它们是我的 .txt 字典中的词(如左图所示)。
例如,右边的第三行:
任何提示或帮助将不胜感激!
我正在制作一个文字游戏,我想知道如何在具有相同字母的列表中查找和排列单词。在我的游戏中,你会看到 5 个字母,然后你必须重新排列这些字母 tp 组成一个单词。所以这个词可以是“acorn”,但是这 5 个字母也可以组成“narco”或“racon”,它们是我的 .txt 字典中的词(如左图所示)。
例如,右边的第三行:
任何提示或帮助将不胜感激!
这是一个典型的字谜问题,您可以将单词作为 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);