classTrie(object):def__init__(self):
self.root=TrieNode()definsert(self, word):"""
:type word: str
:rtype: None
"""
node=self.root
for i in word:
index=ord(i)-ord('a')if node.children[index]isNone:
node.children[index]=TrieNode()
node=node.children[index]
node.is_world=Truedefsearch(self, word):"""
:type word: str
:rtype: bool
"""
node=self.root
for i in word:
index=ord(i)-ord('a')if node.children[index]isNone:returnFalse
node=node.children[index]return node.is_world
defstartsWith(self, prefix):"""
:type prefix: str
:rtype: bool
"""
node=self.root
for i in prefix:
index=ord(i)-ord('a')if node.children[index]isNone:returnFalse
node=node.children[index]returnTrueclassTrieNode:def__init__(self):
self.children=[None]*26
self.is_world=False# 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)