648. Replace Words
class Solution:
def replaceWords(self, dictionary: List[str], sentence: str) -> str:
trie = {}
for word in dictionary:
node = trie
for char in word:
if char not in node:
node[char] = {}
node = node[char]
node['$'] = word
ans = []
for word in sentence.split():
node = trie
for char in word:
if char in node:
node = node[char]
# 題目有要求,如果有更短的 prefix ,要選擇該字
if '$' in node:
break
else:
# 題目可能有符合一些 prefix 中的部分 prefix
# 但是沒有完全符合,所以我們直接終結。
break
if '$' in node:
ans.append(node['$'])
else:
ans.append(word)
return ' '.join(ans)Last updated