Skip to content
Gallery
Algoschool
Share
Explore
Level 1

Trie problems

import collections

class TrieNode:
def __init__(self):
self.children = collections.defaultdict(TrieNode)
self.is_end = False

class Trie:
def __init__(self):
self.root = TrieNode()

def insert(self, word):
current = self.root
for letter in word:
current = current.children[letter]
current.is_end = True

def search(self, word):
current = self.root
for letter in word:
current = current.children.get(letter)
if current is None:
return False
return current.is_end

def startsWith(self, prefix):
current = self.root
for letter in prefix:
current = current.children.get(letter)
if current is None:
return False
return True

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.