2012-03-20 52 views
0

我正在开发一个使用python的字典类应用程序。在我的代码中,有一个由有序字符串组成的列表。当用户给出一些文本时,我想要得到所有以给定字符串开头的字符串。换句话说,我只是想在用户打字的时候建议单词。搜索Python中给定子串的字符串列表

例如:如果用户输入单词“子”,我想借此从开始与子“子”列表中的所有字符串。

谁能给我一个算法来做到这一点?谢谢大家。

+0

此功能通常被称为* auto-complete *;但是,如果查询“蟒蛇和‘互联网搜索引擎自动完成’,大多数的结果将与文本编辑器自动完成Python语法 – doug 2012-03-20 19:45:20

+0

考虑Huffman编码作为深思这个问题:HTTP:/ /en.wikipedia.org/wiki/Huffman_coding – wberry 2012-03-20 22:12:19

+0

可能重复:http://stackoverflow.com/questions/2332028/what-is-an-efficient-search-algorithm-to-provide-auto-completion – 2012-03-21 00:45:41

回答

1

根据列表的大小,你可以只遍历它,并使用startswith()字符串函数来得到结果。如果这太慢,通常的方法是使用prefix tree

+0

谢谢我。认为它解决了我的问题。:) – Malaka 2012-03-21 08:16:17

0

你需要的是一个特里数据结构,这是完美的,你所追求的。您的代码需要处理繁重的读取/检索。查找特里。如果你需要实施让我知道。