Skip to content

Commit d724780

Browse files
committed
committed from zkp
1 parent a9c2586 commit d724780

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

LeetCode/trie.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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')

0 commit comments

Comments
 (0)