zoukankan      html  css  js  c++  java
  • Python字典树实现

    class Trie:
    # word_end = -1

    def __init__(self):
    """
    Initialize your data structure here.
    """
    self.root = {}
    self.word_end = -1

    def insert(self, word):
    """
    Inserts a word into the trie.
    :type word: str
    :rtype: void
    """
    curNode = self.root
    for c in word:
    if not c in curNode:
    curNode[c] = {}
    curNode = curNode[c]

    curNode[self.word_end] = True

    def search(self, word):
    """
    Returns if the word is in the trie.
    :type word: str
    :rtype: bool
    """
    curNode = self.root
    for c in word:
    if not c in curNode:
    return False
    curNode = curNode[c]

    # Doesn't end here
    if self.word_end not in curNode:
    return False

    return True

    def startsWith(self, prefix):
    """
    Returns if there is any word in the trie that starts with the given prefix.
    :type prefix: str
    :rtype: bool
    """
    curNode = self.root
    for c in prefix:
    if not c in curNode:
    return False
    curNode = curNode[c]

    return True


    # Your Trie object will be instantiated and called as such:
    # obj = Trie()
    # obj.insert(word)
    # param_2 = obj.search(word)
    # param_3 = obj.startsWith(prefix)
    ---------------------

    原文:https://blog.csdn.net/ANNILingMo/article/details/80879910

  • 相关阅读:
    起步学习软件开发(.Net 方向)的指导
    Lesktop开源JS控件库
    软件岗位职责
    asp.net 获取网站根目录总结
    微软是怎样做测试的
    打造WebIM
    CodeSmith 系列一
    Crack .NET
    Visual Studio IDE 实用小技巧3
    程序员公司的选择
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/10676804.html
Copyright © 2011-2022 走看看