我有一個字串串列,它們是前綴串列(假設它的數量很大),如果我想檢查給定的名稱/字串,前綴串列中最長的前綴將與這個名稱/字串匹配。即前綴串列:['good','goo','go'] 輸入:name:'goodboy' 結果:good
對于串列中的少量資料,我們可以使用普通的搜索/匹配技術,但對于大量資料,有人可以建議我如何改進。
uj5u.com熱心網友回復:
您可以使用特里。
這是一個實作:
class Trie(dict):
def add(self, s):
node = self
for ch in s:
if ch not in node:
node[ch] = Trie()
node = node[ch]
def findprefix(self, s):
node = self
for i, ch in enumerate(s):
if ch not in node:
return s[:i]
node = node[ch]
trie = Trie()
for s in ["good", "goo", "go"]:
trie.add(s)
print(trie.findprefix("goodbye")) # "good"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488632.html
上一篇:從多個排序陣列中收集前K個元素
下一篇:從名稱串列中獲取唯一名稱
