2 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
TA贡献1795条经验 获得超7个赞
当我从您的代码中复制以下行时
self = self.trieDict[word[0]]
无法识别的符号位于self
导致语法错误的第二个符号的前面。(似乎是 Unicode 0013)只需将其删除或在新行上重写该行并删除有问题的行即可。
顺便说一句,self
在方法中分配给通常不是一个好主意,因为它指向正在执行该方法的实例。虽然语法上没有错误,但肯定会给读者带来困惑。
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
TA贡献1817条经验 获得超14个赞
这是更正后的代码(用于将节点插入到 trie 中并在 trie 中搜索节点:
class TrieNode():
trieDict = {}
isComplete = False
def __init__(self, dic, isComplete):
self.trieDict = dic
self.isComplete = isComplete
#self is the root node
def insert(self, word):
current = self
while len(word) != 0 and current is not None:
if word[0] in current.trieDict:
current = current.trieDict[word[0]]
word = word[1:]
else:
child = TrieNode({}, False)
current.trieDict[word[0]] = child
current = child
word = word[1:]
current.isComplete = True
def search(self, word):
current = self
while len(word) != 0 and current is not None:
if word[0] in current.trieDict:
current = current.trieDict[word[0]]
word = word[1:]
else:
return False
return current.isComplete
def test():
node = TrieNode({}, False)
node.insert('cat')
node.insert('car')
node.insert('pod')
print(node.search('car'))
print(node.search('ccar'))
print(node.search('pod'))
print(node.search('pode'))
test()
添加回答
举报