208. Implement Trie (Prefix Tree)
题目描述
实现字典树,包含插入,查找和前缀查找方法。
注意:
你可以假设所有的输入只包含小写字母a-z
算法
利用Trie对这题进行求解,求解的过程中注意TrieNode的写法
|
|
677. Map Sum Pairs
题目描述
设计一个数据结构MapSum,支持insert和sum操作。
insert(key, val):向MapSum中插入一个key,对应一个val(当key存在时,替换对应的val)
sum(prefix):求MapSum中对应前缀为prefix的所有key的val之和
算法
这题由于需要用到prefix,所以仍然是用trie结构,需要注意的重点是:不单可以用array来对try节点进行存储,也可以是用map来对trie进行存储
|
|
648. Replace Words
题目描述
英文中,以较短的单词为前缀,可以构成较长的单词。此时前缀可以称为“词根”。
给定一组词根字典dict,一个句子sentence。将句中的单词换为字典中出现过的最短词根。
算法
利用Trie, 查看每一个词是否可以进行替换,如果能够替换,则进行替换
|
|
676. Implement Magic Dictionary
题目描述
实现数据结构“魔法字典”,支持两种操作:
buildDict:输入一组无重复的单词,构建一个字典
search:在字典中寻找目标串,目标串与搜索串恰好有一个字符不同
算法
遇到这种问题,首先问一下是插入多还是搜索多。如果搜索多,尽量用将搜索的时间简短。
HashSet 搜索较快
Build: O(m * n)
Search: O(1)
|
|