加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在字典中查找所有有效单词的算法问题

发布时间:2020-12-15 08:31:12 所属栏目:Java 来源:网络整理
导读:给定一个字典(只是一个字符串列表). 您收到来自外部来源的未知数量的信件的Feed.给定一串字母,您将如何列出您可以从这些字母的任何组合中制作的所有有效单词(来自diciontary). 所以如果你收到:abpplead 你应该找到苹果,坏,垫,铅等. 我知道没有最好的答案.但
给定一个字典(只是一个字符串列表).

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

所以如果你收到:abpplead

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

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读