请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。
实现词典类 WordDictionary
:
-
WordDictionary()
初始化词典对象 -
void addWord(word)
将word
添加到数据结构中,之后可以对它进行匹配 -
bool search(word)
如果数据结构中存在字符串与word
匹配,则返回true
;否则,返回false
。word
中可能包含一些.
,每个.
都可以表示任何一个字母。
示例:
输入: ["WordDictionary","addWord","addWord","addWord","search","search","search","search"] [[],["bad"],["dad"],["mad"],["pad"],["bad"],[".ad"],["b.."]] 输出: [null,null,null,null,false,true,true,true] 解释: WordDictionary wordDictionary = new WordDictionary(); wordDictionary.addWord("bad"); wordDictionary.addWord("dad"); wordDictionary.addWord("mad"); wordDictionary.search("pad"); // 返回 False wordDictionary.search("bad"); // 返回 True wordDictionary.search(".ad"); // 返回 True wordDictionary.search("b.."); // 返回 True
提示:
-
1 <= word.length <= 25
-
addWord
中的word
由小写英文字母组成 -
search
中的word
由 '.' 或小写英文字母组成 -
最多调用
104
次addWord
和search
前缀树。需要处理通配符的情况,尤其要注意结尾字符的处理。
- 一刷
-
link:{sourcedir}/_0211_DesignAddAndSearchWordsDataStructure.java[role=include]