Java 如何检查由7个随机字母组成的字符串是否可以构成文件中存在的单词

Java 如何检查由7个随机字母组成的字符串是否可以构成文件中存在的单词,java,file,Java,File,我一直在试图找出最好的方法来解决这个问题,但到目前为止运气不佳 我有一个名为“dict.txt”的文件,大小约为2MB,包含一个可接受的单词列表 使用一个随机生成的7个字母的字符串,我想看看我是否能够以最快的方式使用这些字母从文件中生成一个单词 我似乎想不出一个解决这个问题的好方法,所以如果有人能帮助我,那就太好了! 我使用的语言是Java 提前谢谢 你可以看看 首先将词典索引为后缀树,然后遍历该树以检查词典中是否存在单词。最简单的实现方法是过滤txt文件以仅保留七个字母的单词,并通过按字母顺序

我一直在试图找出最好的方法来解决这个问题,但到目前为止运气不佳

我有一个名为“dict.txt”的文件,大小约为2MB,包含一个可接受的单词列表

使用一个随机生成的7个字母的字符串,我想看看我是否能够以最快的方式使用这些字母从文件中生成一个单词

我似乎想不出一个解决这个问题的好方法,所以如果有人能帮助我,那就太好了! 我使用的语言是Java

提前谢谢

你可以看看


首先将词典索引为后缀树,然后遍历该树以检查词典中是否存在单词。

最简单的实现方法是过滤
txt
文件以仅保留七个字母的单词,并通过按字母顺序排列单词的字母构造字符串,生成一个
哈希集。例如,如果词典包含单词

kickbox
jackpot
squeeze
你会说

bcikkox
acjkopt
eeeqsuz
对输入单词的字母进行排序,并查询集合以查看是否有匹配项。例如,如果您的随机序列是
tajpkco
,您会将其字母排序到
acjkopt
,并发现您可以从该组合中形成一个单词

如果您还需要找出可以从这些字母构造哪些七个字母的单词,请使用字符串列表的哈希映射,因为可能会从同一组字母生成多个单词


请注意,如果您计划继续生成随机序列,直到找到一个“有效”序列为止,此过程可能需要一段时间。您最好先存储所有“有效”序列,随机选取一个,然后对所选取的序列执行随机洗牌,以便更快地进行选择。

发布您的实际尝试,并向我们指出您的位置dict.txt中的单词只有7个字母?如果没有,第一步将是过滤字典中的每个单词,计算单个字母(这样
超过
c*1,d*1,e*3,s*1,x*1
)。然后你可以检查你的随机字母是否与每个单词的分布相匹配。你所说的“用这些字母组成一个单词”到底是什么意思?这7个字母中的每一个只能使用一次吗?使用这些字母的子集组成一个单词也算数吗?