Solution to Implement Trie (Prefix Tree) by LeetCode
Question: https://leetcode.com/problems/implement-trie-prefix-tree/ Question Name: Implement Trie (Prefix Tree) Not a full implementation. The delete function is not required.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | class TrieNode(object): def __init__(self): """ Initialize your data structure here. """ self.isWord = False self.sons = {} class Trie(object): def __init__(self): self.root = TrieNode() def insert(self, word): """ Inserts a word into the trie. :type word: str :rtype: void """ current = self.root for letter in word: if letter not in current.sons: current.sons[letter] = TrieNode() current = current.sons[letter] current.isWord = True def search(self, word): """ Returns if the word is in the trie. :type word: str :rtype: bool """ current = self.root for letter in word: if letter not in current.sons: return False else: current = current.sons[letter] return current.isWord def startsWith(self, prefix): """ Returns if there is any word in the trie that starts with the given prefix. :type prefix: str :rtype: bool """ current = self.root for letter in prefix: if letter not in current.sons: return False else: current = current.sons[letter] return True # Your Trie object will be instantiated and called as such: # trie = Trie() # trie.insert("somestring") # trie.search("key") |