class Solution:
def replaceWords(self, dictionary: List[str], sentence: str) -> str:
d = {} # 字典初始化
for word in dictionary: # 前缀放到字典树
t = d
for c in word:
if c not in t:
t[c] = {}
t = t[c]
t['end'] = True
print(dictionary)
print(d)
def f(word): # 单词前缀判断
t = d
for i,c in enumerate(word):
if 'end' in t:
return word[:i] # 存在前缀就返回前缀
elif c not in t: # 不存在就跳出循环并返回原词
break
t = t[c]
return word
return " ".join(map(f, sentence.split(" ")))