Implement Trie (Prefix Tree)
Implement a trie with insert, search,
and startsWith methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z.
实现Tire树的几个函数。
Python下的实现可以在TireNode中使用字典存储关键字,既减少存储空间,也方便查找,其次,也就不需要将字母转换成对应的数字表示其值了。
代码:
class TrieNode(object):
def __init__(self):
"""
Initialize your data structure here.
"""
self.tnlst = {}
# self.count = 1
self.terminal = False
class Trie(object):
def __init__(self):
self.root = TrieNode()
def insert(self, word):
"""
Inserts a word into the trie.
:type word: str
:rtype: void
"""
r = self.root
for w in word:
if w not in r.tnlst:
r.tnlst[w] = TrieNode()
r = r.tnlst[w]
r.terminal = True
def search(self, word):
"""
Returns if the word is in the trie.
:type word: str
:rtype: bool
"""
r = self.root
for w in word:
if w in r.tnlst:
r = r.tnlst[w]
else:
return False
return r.terminal
def startsWith(self, prefix):
"""
Returns if there is any word in the trie
that starts with the given prefix.
:type prefix: str
:rtype: bool
"""
r = self.root
for w in prefix:
if w in r.tnlst:
r = r.tnlst[w]
else:
return False
return True
实现Trie树

本文介绍了一个简单的Trie树(字典树)实现方法,通过Python中的字典来存储节点,支持插入、搜索及前缀匹配等功能。
566

被折叠的 条评论
为什么被折叠?



