Add and Search Word - Data structure design
来源:互联网 发布:mac下载的搜狗输入法 编辑:程序博客网 时间:2024/05/16 10:05
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 lettersa-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
.
class TrieNode{public: bool isEnd; TrieNode *children[26]; TrieNode() : isEnd(false) { for (int i = 0; i < 26; i++) { children[i] = NULL; } }};class WordDictionary {public: WordDictionary() { root = new TrieNode(); } // Adds a word into the data structure. void addWord(string word) { TrieNode *cur = root; for (int i = 0; i < word.length(); i++) { int index = word[i] - 'a'; if (cur->children[index] == NULL) { cur->children[index] = new TrieNode(); } cur = cur->children[index]; } cur->isEnd = true; } // Returns if the word is in the data structure. A word could // contain the dot character '.' to represent any one letter. bool search(string word) { int n = word.length(); return search(word, n, 0, root); } bool search(string &word, int n, int pos, TrieNode *cur) { if (cur == NULL) { return false; } if (pos == n) { return cur->isEnd; } if (word[pos] == '.') { for (int i = 0; i < 26; i++) { if (cur->children[i]) { if (search(word, n, pos+1, cur->children[i])) { return true; } } } } else { int index = word[pos] - 'a'; if (cur->children[index]) { return search(word, n, pos+1, cur->children[index]); } } return false; }private: TrieNode *root;};// Your WordDictionary object will be instantiated and called as such:// WordDictionary 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 Add and Search Word - Data structure design
- 211Add and Search Word - Data structure design
- Leetcode Add and Search Word - Data structure design
- leetcode:Add and Search Word - Data structure design
- [leetcode]Add and Search Word - Data structure design
- [LeetCode] Add and Search Word - Data structure design
- iOS上的http请求:get、post以及同步、异步
- SQLAlchemy使用笔记--简介
- iOS验证邮箱, 手机号, 密码, 账户名 --- 正则表达式
- C语言获取系统时间
- xcode 自己常用到的快捷键
- Add and Search Word - Data structure design
- Matlab优化问题07—fgoalattain
- GET 与POST一句话理解!
- 快速排序
- iosGET同步、异步请求
- ios 苹果自带的get请求
- java HashMap以及concurrenHashMap
- #leetcode#Implement strStr()
- 【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历