[leetcode]211. Add and Search Word
来源:互联网 发布:易中天品三国 知乎 编辑:程序博客网 时间:2024/05/19 00:41
题目链接:https://leetcode.com/problems/add-and-search-word-data-structure-design/tabs/description
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
class TrieNode{public: bool isKey; TrieNode* children[26]; TrieNode():isKey(false){ memset(children,NULL,sizeof(TrieNode*)*26); };};class WordDictionary {public: /** Initialize your data structure here. */ WordDictionary() { root=new TrieNode(); } /** Adds a word into the data structure. */ void addWord(string word) { TrieNode* run=root; for(char c:word) { if(!(run->children[c-'a'])) run->children[c-'a']=new TrieNode(); run=run->children[c-'a']; } run->isKey=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 query(word.c_str(),root); }private: TrieNode* root; bool query(const char* word,TrieNode* node) { TrieNode* run=node; for(int i=0;word[i];i++) { if(run && word[i]!='.') run=run->children[word[i]-'a']; else if(run && word[i]=='.') { TrieNode* tmp=run; for(int j=0;j<26;j++) { run=tmp->children[j]; if(query(word+i+1,run)) return true; } } else break; } return run && run->isKey; }};
阅读全文
0 0
- Leetcode 211. Add and Search Word
- [Leetcode] 211. Add and Search Word
- [leetcode]211. Add and Search Word
- leetcode 211. Add and Search Word
- leetcode 211. Add and Search Word
- leetcode 211. Add and Search Word
- [LeetCode] Add and Search Word
- leetcode--Add and Search Word
- 211. Add and Search Word
- 211. Add and Search Word
- 211. Add and Search Word
- [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
- leetcode 211. Add and Search Word - Data structure design
- LeetCode 211. Add and Search Word - Data structure design
- tensoflow练习3:卷积神经网络用于分类
- 图解修改Maven仓库下载到本地jar包默认存储位置
- usaco 3.2 Magic Squares
- linux驱动复习之阻塞与非阻塞的IO操作 [一]
- 图论 邻接表建图+dfs
- [leetcode]211. Add and Search Word
- 并查集初步
- Unity3D之UI按键绑定事件(二)
- H
- English words page three
- 语音增强-理论与实践----笔记-谱减法
- 修改Android5.1源码,配置以太网设置默认为静态ip
- jQuery笔记(动画)
- JavaScript arguments对象