国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)簡單字典樹的方法

2019-11-25 16:49:05
字體:
供稿:網(wǎng)友

本文實例講述了Python實現(xiàn)簡單字典樹的方法。分享給大家供大家參考,具體如下:

#coding=utf8"""代碼實現(xiàn)了最簡單的字典樹,只支持由小寫字母組成的字符串。在此代碼基礎(chǔ)上擴展一下,就可以實現(xiàn)比較復(fù)雜的字典樹,比如帶統(tǒng)計數(shù)的,或支持更多字符的字典樹,或者是支持刪除等操作。"""class TrieNode(object):  def __init__(self):    # 是否構(gòu)成一個完成的單詞    self.is_word = False    self.children = [None] * 26class Trie(object):  def __init__(self):    self.root = TrieNode()  def add(self, s):    """Add a string to this trie."""    p = self.root    n = len(s)    for i in range(n):      if p.children[ord(s[i]) - ord('a')] is None:        new_node = TrieNode()        if i == n - 1:          new_node.is_word = True        p.children[ord(s[i]) - ord('a')] = new_node        p = new_node      else:        p = p.children[ord(s[i]) - ord('a')]        if i == n - 1:          p.is_word = True          return  def search(self, s):    """Judge whether s is in this trie."""    p = self.root    for c in s:      p = p.children[ord(c) - ord('a')]      if p is None:        return False    if p.is_word:      return True    else:      return Falseif __name__ == '__main__':  trie = Trie()  trie.add('str')  trie.add('acb')  trie.add('acblde')  print trie.search('acb')  print trie.search('ac')  trie.add('ac')  print trie.search('ac')

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python字典操作技巧匯總》、《Python正則表達式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 徐水县| 巧家县| 同仁县| 五河县| 大方县| 宜丰县| 南阳市| 景泰县| 永顺县| 桂平市| 津市市| 井研县| 双流县| 大冶市| 虞城县| 云霄县| 长子县| 周宁县| 临西县| 那曲县| 淮南市| 沂源县| 洛南县| 嘉善县| 吉木萨尔县| 蓬莱市| 庆云县| 滦南县| 班戈县| 新巴尔虎左旗| 张北县| 五台县| 新和县| 文安县| 教育| 沅陵县| 普洱| 游戏| 天水市| 酒泉市| 专栏|