File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ class Trie :
2+ def __init__ (self ):
3+ self .root = {}
4+
5+ def insert (self , sequence ):
6+ node = self .root
7+ for item in sequence :
8+ if item in node .keys ():
9+ node = node [item ]
10+ else :
11+ node [item ] = {}
12+ node = node [item ]
13+ node ['end' ] = True
14+
15+ def search (self , word ):
16+ node = self .root
17+ for w in word :
18+ if w not in node .keys ():
19+ return False
20+ else :
21+ node = node [w ]
22+ mark = node .get ('end' )
23+ return mark is not None
24+
25+ def startsWith (self , prefix ):
26+ curnode = self .root
27+ for w in prefix :
28+ if w not in curnode .keys ():
29+ return False
30+ curnode = curnode [w ]
31+ return True
32+ if __name__ == '__main__' :
33+ t = Trie ()
34+ t .insert ('apple' )
35+ assert not t .search ('app' )
36+ assert t .search ('apple' )
37+ t .insert ('app' )
38+ assert t .search ('app' )
39+ assert t .startsWith ('app' )
You can’t perform that action at this time.
0 commit comments