Skip to content

Files

Latest commit

Apr 29, 2025
242fd6b · Apr 29, 2025

History

History
71 lines (53 loc) · 1.91 KB

0211-design-add-and-search-words-data-structure.adoc

File metadata and controls

71 lines (53 loc) · 1.91 KB

211. 添加与搜索单词 - 数据结构设计

请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。

实现词典类 WordDictionary

  • WordDictionary() 初始化词典对象

  • void addWord(word)word 添加到数据结构中,之后可以对它进行匹配

  • bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 falseword 中可能包含一些 .,每个 . 都可以表示任何一个字母。

示例:

输入:
["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 由 '.' 或小写英文字母组成

  • 最多调用 104addWordsearch

思路分析

前缀树。需要处理通配符的情况,尤其要注意结尾字符的处理。

一刷
link:{sourcedir}/_0211_DesignAddAndSearchWordsDataStructure.java[role=include]

参考资料