https://leetcode.com/problems/implement-trie-prefix-tree/description/
class TrieNode:
def __init__(self):
self.children = {}
self.endWord = False
class Trie:
def __init__(self):
self.root = TrieNode()
def insert(self, word: str) -> None:
ptr = self.root
for char in word:
if char not in ptr.children:
ptr.children[char] = TrieNode()
ptr = ptr.children[char]
ptr.endWord = True
def search(self, word: str) -> bool:
ptr = self.root
for char in word:
if char not in ptr.children:
return False
ptr = ptr.children[char]
return ptr.endWord
def startsWith(self, prefix: str) -> bool:
ptr = self.root
for char in prefix:
if char not in ptr.children:
return False
ptr = ptr.children[char]
return True