LeetCode|Add and Search Word - Data structure design
来源:互联网 发布:安卓js css本地打包 编辑:程序博客网 时间:2024/06/11 20:01
Add and Search Word - Data structure design
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.
class WordDictionary {public: WordDictionary(){ root = new Node(); } // Adds a word into the data structure. void addWord(string word) { int len = word.length(); Node* p = root; for(int i = 0; i < len; i++){ int id = word[i] - 'a'; if(p->next[id] == NULL) p->next[id] = new Node(); p = p->next[id]; } p->someWordCompleteHere = 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) { return dfs(word, root, 0); }private: struct Node{ Node(){ someWordCompleteHere = false; memset(next, NULL, sizeof(next)); } bool someWordCompleteHere; Node *next[26]; } * root; bool dfs(string& word, Node* p, int i){ if(i == word.length()) return p->someWordCompleteHere; int id = -1; if(word[i] != '.') id = word[i] - 'a'; if(id != -1){ if(p->next[id] == NULL) return false; else return dfs(word, p->next[id], i+1); } for(int id = 0; id < 26; id++){ if(p->next[id] != NULL && dfs(word, p->next[id], i+1)) return true; } return false; }};// Your WordDictionary object will be instantiated and called as such:// WordDictionary wordDictionary;// wordDictionary.addWord("word");// wordDictionary.search("pattern");
0 0
- LeetCode 211 - 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
- [leetcode]Add and Search Word - Data structure design
- [LeetCode] Add and Search Word - Data structure design
- leetcode #211 Add and Search Word - Data structure design
- leetcode Add and Search Word - Data structure design
- [LeetCode]Add and Search Word - Data structure design,解题报告
- leetcode 211: 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
- [leetcode] Add and Search Word - Data structure design
- Leetcode: Add and Search Word - Data structure design (Java)
- leetcode Add and Search Word - Data structure design
- [leetcode] Add and Search Word - Data structure design
- leetcode--Add and Search Word - Data structure design
- JDK8新特性--Stream
- MIT6.828 Lab2: 第3部分 Kernel Address Space
- HDU1102 Constructing Roads
- CodeForces 585D Present for Vitalik the Philatelist(容斥原理+gcd)
- ionic安卓默认的tabs修改为底部显示
- LeetCode|Add and Search Word - Data structure design
- 135_Service给Activity发消息
- BNUOJ 51637 Quailty's Life | BZOJ 4587 推箱子
- leetcode.84. Largest Rectangle in Histogram
- ftp安装
- Spark 2.0技术预览:更容易、更快速、更智能
- w3schools网站的HTML教程之HTML基础
- 136_android布局优化措施
- Linux的目录结构整理