leetcode 211: Add and Search Word - Data Structure Design
来源:互联网 发布:四川旅游学院教务网络 编辑:程序博客网 时间:2024/06/06 13:17
Use the method in Implement Trie, and modify the search function into the DFS method to check '.' character.
struct DictNode { char c; bool isword; unordered_map<char,DictNode*> next; DictNode() { } DictNode(char _c) { c=_c; isword=0; }};class WordDictionary {public: WordDictionary() { root=new DictNode(); } // Adds a word into the data structure. void addWord(string word) { int len=word.length(); DictNode *curr=root; for(int i=0;i<len;i++) { if(curr->next.find(word[i])!=curr->next.end()) curr=curr->next[word[i]]; else { DictNode *temp=new DictNode(word[i]); curr->next.insert(make_pair(word[i],temp)); curr=temp; } } curr->isword=1; } // 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 search_helper(word,root); } bool search_helper(string word,DictNode *p) { if(word.empty()) return p->isword; if(word[0]=='.') { unordered_map<char,DictNode*>::iterator it; for(it=p->next.begin();it!=p->next.end();it++) if(search_helper(word.substr(1),it->second)) return 1; return 0; } if(p->next.find(word[0])==p->next.end()) return 0; return search_helper(word.substr(1),p->next[word[0]]); }private: DictNode *root;};// 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 #211 Add and Search Word - Data structure design
- leetcode 211: Add and Search Word - Data structure design
- [Leetcode 211, Medium] 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
- 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
- leetcode-211-Add and Search Word - Data structure design
- leetcode:Trie:Add and Search Word - Data structure design(211)
- 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
- VMware虚拟机 ubuntu忘记密码解决方法
- Druid数据库连接池使用
- MongoDB知识点
- 解决URL二次编码的问题
- URI和URL的简单区分
- leetcode 211: Add and Search Word - Data Structure Design
- hdu 4268 Alice and Bob(lower_bound+贪心)
- Oracle(二)--> 视图详解(高清多图,还怕懂不了?)
- GBRank的问题列表
- linux 安装 maven 及 nexus私服
- RxJava 中的map与flatMap
- File upload example in Jersey
- iOS-了解App的启动过程
- matlab快速入门,最常用基本函数大全。