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

  • 相关阅读:
    html问题记录20180529
    html问题记录20180518
    html问题记录20180515
    Redis持久化--AOF
    Redis持久化--RDB
    Redis事件模型
    两个字符串的编辑距离-动态规划方法
    Reactor事件模型在Redis中的应用
    事件驱动模式--Reactor
    IO多路复用--总结
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/10676804.html
Copyright © 2011-2022 走看看