美文网首页Leetcode
Leetcode 208. Implement Trie (Pr

Leetcode 208. Implement Trie (Pr

作者: SnailTyan | 来源:发表于2021-07-23 15:00 被阅读0次

    文章作者:Tyan
    博客:noahsnail.com  |  CSDN  |  简书

    1. Description

    Implement Trie (Prefix Tree)

    2. Solution

    解析:Version 1,字典树的实现,每一个结点都可能包含26个子节点,其子结点的keya-z,除根节点外,每个结点还可能包含end作为单词结束的标志。

    • Version 1
    class TrieNode:
        def __init__(self):
            self.children = {}
    
    
    class Trie:
    
        def __init__(self):
            """
            Initialize your data structure here.
            """
            self.root = TrieNode()
    
    
        def insert(self, word: str) -> None:
            """
            Inserts a word into the trie.
            """
            current = self.root
            for ch in word:
                if ch in current.children:
                    current = current.children[ch]
                else:
                    node = TrieNode()
                    current.children[ch] = node
                    current = node
    
            current.children['end'] = 'end'
    
    
        def search(self, word: str) -> bool:
            """
            Returns if the word is in the trie.
            """
            current = self.root
            for ch in word:
                if ch in current.children:
                    current = current.children[ch]
                else:
                    return False
            return 'end' in current.children:
    
    
        def startsWith(self, prefix: str) -> bool:
            """
            Returns if there is any word in the trie that starts with the given prefix.
            """
            current = self.root
            for ch in prefix:
                if ch in current.children:
                    current = current.children[ch]
                else:
                    return False
            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)
    

    Reference

    1. https://leetcode.com/problems/implement-trie-prefix-tree/

    相关文章

      网友评论

        本文标题:Leetcode 208. Implement Trie (Pr

        本文链接:https://www.haomeiwen.com/subject/zoifpltx.html