2012-03-20 53 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

你需要的是一個特里數據結構,這是完美的,你所追求的。您的代碼需要處理繁重的讀取/檢索。查找特里。如果你需要實施讓我知道。