当前位置:  开发笔记 > 编程语言 > 正文

列出以<user input>开头的字典中的所有单词

如何解决《列出以<userinput>开头的字典中的所有单词》经验,为你挑选了3个好方法。

如何制作一个用户输入字符串的程序,程序会生成一个以该字符串开头的单词列表?

例:
用户:"abd"
计划:abdicate,abdomen,abduct ......

谢谢!


编辑:我正在使用python,但我认为这是一个相当语言无关的问题.



1> erickson..:

使用特里.

将您的单词列表添加到trie.从根到叶子的每条路径都是有效的单词.从根节点到中间节点的路径表示前缀,中间节点的子节点是前缀的有效完成.



2> Daniel..:

执行此操作的最佳方法之一是使用有向图来存储字典.它需要一些设置,但一旦完成,那么你正在谈论的搜索类型相当容易.

图中的节点对应于单词中的字母,因此每个节点将具有一个传入链接和最多26个(英语)传出链接.

您还可以使用混合方法,在该方法中维护包含字典的排序列表,并使用有向图作为字典的索引.然后,您只需在有向图中查找前缀,然后转到词典中的该点并吐出符合搜索条件的所有单词.



3> freespace..:

如果你在debian [-like]机器上,

#!/bin/bash
echo -n "Enter a word: "
read input
grep "^$input" /usr/share/dict/words

在我的P200上占用0.040全部.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有