首页 > 其他 > 详细

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

时间:2018-02-27 22:05:43      阅读:155      评论:0      收藏:0      [点我收藏+]

[抄题]:

设计一个包含下面两个操作的数据结构: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

原文:https://www.cnblogs.com/immiao0319/p/8481130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!