关于在词典中查找所有有效词的算法问题

Sao*_*obi 3 java algorithm

给定一个字典(只是一个字符串列表).

您收到来自外部来源的未知数量的信件的Feed.给定一串字母,您将如何列出您可以从这些字母的任何组合中制作的所有有效单词(来自diciontary).

所以如果你收到:abpplead

你应该找到苹果,坏,垫,铅等.

我知道没有最好的答案.但是有哪些合理有效的方法,使用什么数据结构等等.

此外,假设您可以预处理输入,因此您可以选择将输入字母存储在您想要的任何数据结构中.

Pau*_*ieh 5

将字典放入特里.然后将字母放入由其字符值索引的计数器数组中,保持每个字母的计数(让这称为[].).然后以深度第一搜索顺序遍历trie,在向下遍历时递减每个字母的计数[letter]值,并在返回的路上递增它.现在,任何时候计数[字母]即将消极,停止并向后移动.每次到达单词终止符时,输出结果.