philosyang.com

208. Implement Trie (Prefix Tree): revisit

 1class Trie:
 2
 3    def __init__(self):
 4        self.root = {}
 5
 6    def insert(self, word: str) -> None:
 7        node = self.root
 8        for ch in word:
 9            if ch not in node:
10                node[ch] = {}
11            node = node[ch]
12        node["ends"] = True
13
14    def search(self, word: str) -> bool:
15        node = self.root
16        for ch in word:
17            if ch not in node:
18                return False
19            node = node[ch]
20        return node.get("ends", False)
21
22    def startsWith(self, prefix: str) -> bool:
23        node = self.root
24        for ch in prefix:
25            if ch not in node:
26                return False
27            node = node[ch]
28        return True
29
30
31# Your Trie object will be instantiated and called as such:
32# obj = Trie()
33# obj.insert(word)
34# param_2 = obj.search(word)
35# param_3 = obj.startsWith(prefix)

#Neetcode150 #Hashing #String #Trie #Python