211. Add and Search Word - Data structure design【M】【91】
2016-05-27 20:37
375 查看
Design a data structure that supports the following two operations:
search(word) can search a literal word or a regular expression string containing only letters
A
For example:
Note:
You may assume that all words are consist of lowercase letters
click to show hint.
You should be familiar with how a Trie works. If not, please work on this problem: Implement Trie (Prefix Tree) first.
Subscribe to see which companies asked this question
本来应该用trie,不过看来散列也可以
void addWord(word) bool search(word)
search(word) can search a literal word or a regular expression string containing only letters
a-zor
..
A
.means it can represent any one letter.
For example:
addWord("bad") addWord("dad") addWord("mad") search("pad") -> false search("bad") -> true search(".ad") -> true search("b..") -> true
Note:
You may assume that all words are consist of lowercase letters
a-z.
click to show hint.
You should be familiar with how a Trie works. If not, please work on this problem: Implement Trie (Prefix Tree) first.
Subscribe to see which companies asked this question
本来应该用trie,不过看来散列也可以
class WordDictionary(object): def __init__(self): self.dic = {} def addWord(self, word): l = len(word) if l in self.dic.keys(): self.dic[l].append(word) else: self.dic[l] = [word] def search(self, word): l = len(word) #print self.dic if '.' not in word: return (word in self.dic.get(l,[])) li = self.dic.get(l,[]) for v in li: flag = True for index,c in enumerate(word): if c == v[index] or c == '.': flag = True else: flag = False break if flag: return True return False
相关文章推荐
- UITabelView分组样式时如何调整组之间的间距
- PETS-ICVS Datasets 数据集
- Mysql 性能优化
- hdu 1181 变形课
- Hibernate(三)
- Mysql 日志
- 第二阶段冲刺第一天
- AndroidAnnotations(Code Diet)android快速开发框架
- hdu3639 Hawk-and-Chicken(Tarjan缩点+反图搜索)
- Mysql 数据类型
- Hadoop整合Hive之API封装及操作
- log4j:WARN No appenders could be found for logger ;WARN Please initialize the log4j system properly
- ViewPager实现tab
- 单元测试-白盒测试方法
- INRIA目标检测和定位工具包 INRIA Object Detection and Localization Toolkit
- 为什么叫感知机
- 代理模式 vs 装饰模式
- 【数据处理】为什么数据要取对数
- SICP PolySystem
- 什么是Cloud Foundry,该如何入门