Python數(shù)據(jù)結(jié)構(gòu)與算法之字典樹實(shí)現(xiàn)方法示例
本文實(shí)例講述了Python數(shù)據(jù)結(jié)構(gòu)與算法之字典樹實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
class TrieTree(): def __init__(self): self.root = {} def addNode(self,str): # 樹中每個結(jié)點(diǎn)(除根節(jié)點(diǎn)),包含到該結(jié)點(diǎn)的單詞數(shù),以及該結(jié)點(diǎn)后面出現(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]] # 轉(zhuǎn)移到下一個結(jié)點(diǎn) 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] # 匹配當(dāng)前結(jié)點(diǎn),轉(zhuǎn)下一個結(jié)點(diǎn) # 到了這一步證明單詞存在 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
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆實(shí)例
- Python數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹結(jié)構(gòu)定義與遍歷方法詳解
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹的統(tǒng)計與轉(zhuǎn)換實(shí)例
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹的遍歷實(shí)例
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹的建立實(shí)例
- python數(shù)據(jù)結(jié)構(gòu)樹和二叉樹簡介
- Python數(shù)據(jù)結(jié)構(gòu)樹與算法分析
相關(guān)文章
詳解用pyecharts Geo實(shí)現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決
這篇文章主要介紹了詳解用pyecharts Geo實(shí)現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06python數(shù)據(jù)封裝json格式數(shù)據(jù)
本次內(nèi)容是小編在網(wǎng)上整理的關(guān)于如何python數(shù)據(jù)封裝json格式的內(nèi)容總結(jié),有興趣的讀者們參考下。2018-03-03Python內(nèi)置方法實(shí)現(xiàn)字符串的秘鑰加解密(推薦)
在Python中實(shí)現(xiàn)AES算法需要借助的第三方庫Crypto,其在各個操作系統(tǒng)上的安裝方法有些許復(fù)雜,所以對于簡單的使用有點(diǎn)殺雞用牛刀的意思。這篇文章主要介紹了利用Python內(nèi)置方法實(shí)現(xiàn)字符串的秘鑰加解密,需要的朋友可以參考下2019-12-12python將dict中的unicode打印成中文實(shí)例
這篇文章主要介紹了python將dict中的unicode打印成中文實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python中前綴運(yùn)算符 *和 **的用法示例詳解
這篇文章主要介紹了python中前綴運(yùn)算符 *和 **的用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-05-05Softmax函數(shù)原理及Python實(shí)現(xiàn)過程解析
這篇文章主要介紹了Softmax函數(shù)原理及Python實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05