Python數(shù)據(jù)結構與算法之字典樹實現(xiàn)方法示例
本文實例講述了Python數(shù)據(jù)結構與算法之字典樹實現(xiàn)方法。分享給大家供大家參考,具體如下:
class TrieTree(): def __init__(self): self.root = {} def addNode(self,str): # 樹中每個結點(除根節(jié)點),包含到該結點的單詞數(shù),以及該結點后面出現(xiàn)字母的鍵 nowdict = self.root for i in range(len(str)): if str[i] not in nowdict: # 發(fā)現(xiàn)新的組合方式 nowdict[str[i]] = {'count':0,'prefix':str[:i+1]} nowdict = nowdict[str[i]] # 轉移到下一個結點 nowdict['count'] += 1 def countWord(self,str): # 返回輸入單詞在樹中出現(xiàn)的次數(shù) nowdict = self.root for s in str: if s not in nowdict: return 0 nowdict = nowdict[s] # 匹配當前結點,轉下一個結點 # 到了這一步證明單詞存在 return nowdict['count'] if __name__=="__main__": pass Text = ['b','abc','abd','bcd','abcd','efg','hii','bcd'] t = TrieTree() for str in Text: t.addNode(str) print t.countWord('bcd') >>> 2
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
詳解用pyecharts Geo實現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決
這篇文章主要介紹了詳解用pyecharts Geo實現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06python數(shù)據(jù)封裝json格式數(shù)據(jù)
本次內容是小編在網(wǎng)上整理的關于如何python數(shù)據(jù)封裝json格式的內容總結,有興趣的讀者們參考下。2018-03-03Python內置方法實現(xiàn)字符串的秘鑰加解密(推薦)
在Python中實現(xiàn)AES算法需要借助的第三方庫Crypto,其在各個操作系統(tǒng)上的安裝方法有些許復雜,所以對于簡單的使用有點殺雞用牛刀的意思。這篇文章主要介紹了利用Python內置方法實現(xiàn)字符串的秘鑰加解密,需要的朋友可以參考下2019-12-12Softmax函數(shù)原理及Python實現(xiàn)過程解析
這篇文章主要介紹了Softmax函數(shù)原理及Python實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05