【发布时间】:2011-09-11 00:14:23
【问题描述】:
我正在做一个小项目(使用 Java),而 uni 只是为了测试自己而我遇到了一个绊脚石。
我正在尝试编写一个程序,该程序将从文本版本的字典中读取,将其存储在 ds(数据结构)中,然后向用户询问随机字符串(最好是无意义的字符串,但只有字母和-'s,没有数字或其他标点符号 - 我对其他任何东西都不感兴趣),找出输入字符串的所有字谜,将其与字典 ds 进行比较并返回字典中所有可能的字谜的列表.
好的,对于第 1 步和第 2 步(从字典中读取),当我阅读其中的所有内容时,我将其存储在一个 Map 中,其中键是字母表中的字母,值是存储所有单词开头的 ArrayLists用那封信。
我一直在寻找所有的字谜,我想出了如何递归地(自豪地)计算可能排列的数量,但我不确定如何实际进行重新排列。
将其分解为 char 并以这种方式使用它更好,还是将其拆分并保留为字符串元素?我已经在不同的网站上在线看到了示例代码,但我不想看到代码,我想知道为此开发解决方案背后的方法/想法,因为我有点卡住了如何开始:(
我的意思是,一旦我生成了所有排列,我想我知道我将如何与字典 ds 进行比较。
任何建议都会有所帮助,但如果可以的话,不要编写代码,只是想法。
附:如果您想查看我的代码(无论出于何种原因),我会发布我所拥有的。
【问题讨论】:
-
您实际上是在编写一个字谜求解器。 scrabblecheat.com
-
我知道最好的方法是使用某种树结构。但我不是 100% 确定如何去做。
-
@Jeff Foster 是的,经过反思,我的意思是字谜!该死的,我什至想不出那个词:/现在需要重新发布。谢谢!真的一棵树就解决了吗?怎么会?
-
它被称为字典树,我不得不为 CMU 的暑期班写一个非常简单的程序。您的支持数据结构是真正重要的部分。
-
哈哈!直到后来才真正意识到 trie 实际上是您的意思:P 以为您的意思是说树并拼错了:P 谢谢:D
标签: java string recursion arraylist anagram