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

首頁(yè) > 編程 > Python > 正文

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

2020-01-04 17:30:25
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單字典樹的方法,實(shí)例分析了Python字典樹的定義、實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
 

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

#coding=utf8"""代碼實(shí)現(xiàn)了最簡(jiǎn)單的字典樹,只支持由小寫字母組成的字符串。在此代碼基礎(chǔ)上擴(kuò)展一下,就可以實(shí)現(xiàn)比較復(fù)雜的字典樹,比如帶統(tǒng)計(jì)數(shù)的,或支持更多字符的字典樹,或者是支持刪除等操作。"""class TrieNode(object):  def __init__(self):    # 是否構(gòu)成一個(gè)完成的單詞    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')
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青龙| 连城县| 会理县| 宜川县| 措勤县| 阿拉善右旗| 惠东县| 平湖市| 高淳县| 常熟市| 七台河市| 仁寿县| 大足县| 龙州县| 遂溪县| 大田县| 武隆县| 岑巩县| 措勤县| 顺昌县| 巴林左旗| 宣城市| 大丰市| 盐山县| 中山市| 驻马店市| 沾益县| 铁力市| 怀来县| 高要市| 安西县| 平顺县| 伊春市| 偏关县| 新昌县| 台北市| 江口县| 扎兰屯市| 嘉义县| 双流县| 石阡县|