211
题目描述:
请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。
实现词典类 WordDictionary :
WordDictionary() 初始化词典对象
void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配
bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。word 中可能包含一些 ‘.’ ,每个 . 都可以表示任何一个字母。
示例:
解答:
class WordDictionary:
def __init__(self):
"""
Initialize your data structure here.
"""
from collections import defaultdict
self.lookup={
}
def addWord(self, word: str) -> None:
tree=self.lookup
for a in word:
tree=tree.setdefault(a,{
})
tree["#"]={
}
def search(self, word: str) -> bool:
def helper(word,tree):
if not word:
if "#" in tree:
return True
return False
if word[0]==".":
for t in tree:
if helper(word[1:],tree[t]):
return True
elif word[0] in tree:
if helper(word[1:],tree[word