211. Add and Search Word - Data structure design
来源:互联网 发布:淘宝打印发货单软件 编辑:程序博客网 时间:2024/06/05 11:57
Design a data structure that supports the following two operations:
void addWord(word)bool search(word)
search(word) can search a literal word or a regular expression string containing only letters a-z
or .
. A .
means it can represent any one letter.
For example:
addWord("bad")addWord("dad")addWord("mad")search("pad") -> falsesearch("bad") -> truesearch(".ad") -> truesearch("b..") -> true
Note:
You may assume that all words are consist of lowercase letters a-z
.
similar to 208 , use dfs
class TrieNode{ boolean isWord; TrieNode[] children; public TrieNode(){ children = new TrieNode[26]; isWord = false; }}public class WordDictionary { TrieNode root; public WordDictionary(){ root = new TrieNode(); } // Adds a word into the data structure. public void addWord(String word) { TrieNode p=root; for(int i=0; i<word.length(); i++){ char c = word.charAt(i); if(p.children[c -'a']==null){ p.children[c -'a']=new TrieNode(); } p = p.children[c -'a']; } p.isWord = true; } // Returns if the word is in the data structure. A word could // contain the dot character '.' to represent any one letter. public boolean search(String word) { TrieNode p=root; return dfs(word, 0, p); } public boolean dfs(String word, int i, TrieNode p){ if(i>=word.length()) { if(p.isWord) return true; else return false; } char c = word.charAt(i); if(c=='.'){ for(int k=0; k<26; k++){ if(p.children[k]!=null && dfs(word, i+1, p.children[k])) return true; } return false; }else{ if(p.children[c-'a']==null) return false; return dfs(word, i+1, p.children[c-'a']); } }}// Your WordDictionary object will be instantiated and called as such:// WordDictionary wordDictionary = new WordDictionary();// wordDictionary.addWord("word");// wordDictionary.search("pattern");
0 0
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- Add and Search Word - Data structure design
- [leetcode] 211.Add and Search Word - Data structure design
- LeetCode 211. Add and Search Word - Data structure design
- [Leetcode]211. Add and Search Word - Data structure design @python
- Leetcode 211. Add and Search Word - Data structure design
- 211. Add and Search Word - Data structure design LeetCode
- 211. Add and Search Word - Data structure design
- leetcode 211. Add and Search Word - Data structure design
- c语言32个关键字
- 同步加载与异步加载
- 208. Implement Trie (Prefix Tree)
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 2017年春运,那些抢票软件还能用么?
- 211. Add and Search Word - Data structure design
- webservice 采用SSL实现加密传输
- 集合中的迭代
- Windows/Linux环境下查看Java进程ID方法
- 51单片机学习
- 服务器ionCube扩展/组建安装教程
- php 判断文件或目录是否存在
- VC++扩展名解读大全
- MFC添加自定义消息