? https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/submissions/
这道题的初始化和插入没什么,主要是在查询的那个.上面,要用递归去做,菜鸡递归不会写,唉,真的难受
class WordDictionary:
def __init__(self):
"""
Initialize your data structure here.
"""
self.isword = '#'
self.root = {}
def addWord(self, word: str) -> None:
"""
Adds a word into the data structure.
"""
node = self.root
for i in word:
node = node.setdefault(i,{})
node['#'] = '#'
def ennn(self,node,word):
if not word:
if '#' in node:
return True
else:
return False
i = word[0]
if i == '.':
for j in range(26):
x = chr(j + 97)
if x in node:
if self.ennn(node[x],word[1:]):
return True
return False // 这里别忘了,有个return False
else:
node = node.get(i)
if not node:
return False
else:
return self.ennn(node,word[1:])
def search(self, word: str) -> bool:
"""
Returns if the word is in the data structure. A word could contain the dot character '.' to represent any one letter.
"""
node = self.root
return self.ennn(node,word)