单词的添加与查找 · Add and Search Word

Posted 排序和map

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单词的添加与查找 · Add and Search Word相关的知识,希望对你有一定的参考价值。

[抄题]:

设计一个包含下面两个操作的数据结构:addWord(word)search(word)

addWord(word)会在数据结构中添加一个单词。而search(word)则支持普通的单词查询或是只包含.a-z的简易正则表达式的查询。

一个 . 可以代表一个任何的字母。

addWord("bad")
addWord("dad")
addWord("mad")
search("pad")  // return false
search("bad")  // return true
search(".ad")  // return true
search("b..")  // return true

 [暴力解法]:

时间分析:

空间分析:

[思维问题]:

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. now.children[c - ‘a‘] = new TrieNode(); 表示26叉树中建立了新字母。now = now.children[c - ‘a‘];表示赋值给当前节点。
  2. 所有函数中都是对指针now操作,也要对hasword进行处理。新类中的每个变量都要处理,以前不知道。
  3. 如果now.children[c - ‘a‘]已经初始化出节点,就持续find(word, index + 1, now.chidren[c - ‘a‘]);直到退出。类似dfs, 没理解

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

[复杂度]:Time complexity: O() Space complexity: O()

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

 [代码风格] :

 

以上是关于单词的添加与查找 · Add and Search Word的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode]211. Add and Search Word - Data structure design添加查找单词 - 数据结构设计

[LeetCode] 211. Add and Search Word - Data structure design 添加和查找单词-数据结构设计

211. 添加与搜索单词 - 数据结构设计trie数的基本操作

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

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

LeetCode 211. Add and Search Word - Data structure design