LeetCode-Add and Search Word - Data structure design-前缀树
来源:互联网 发布:软件生命周期模型对比 编辑:程序博客网 时间:2024/05/16 19:13
原题链接https://leetcode.com/problems/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 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
实现前缀树。
trieNode 中的flag表示是否以该节点结尾的单词存在
class TrieNode {public:TrieNode* next[26];bool flag;TrieNode() {for (int i = 0; i < 26; ++i)next[i] = NULL;flag = false;}};class Trie {public:TrieNode* root;Trie() {root = new TrieNode();}void insert(string& word) {TrieNode* tmp = root;for (auto &c : word){if (tmp->next[c - 'a'] == NULL)tmp->next[c - 'a'] = new TrieNode();tmp = tmp->next[c - 'a'];}tmp->flag = true;}};class WordDictionary {public:Trie trie;void addWord(string word) {trie.insert(word);}bool search(string word) {return dfs(word, 0, trie.root);}bool dfs(string& str, int pos, TrieNode* root){if (root == NULL)return false;if (str.length() == pos && root != NULL)return root->flag;if (str[pos] != '.')return dfs(str, pos + 1, root->next[str[pos] - 'a']);elsefor (int i = 0; i < 26; ++i)if (dfs(str, pos + 1, root->next[i]))return true;return false;}};
0 0
- LeetCode-Add and Search Word - Data structure design-前缀树
- leetcode---Add and Search Word - Data structure design---Trie树
- 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
- PL/SQL精明的调用栈分析
- JFinal最简单demo + gradle
- android模拟按键
- node.js学习笔记之常用模块介绍
- 程序员职业规划:让自己变得重要(转)
- LeetCode-Add and Search Word - Data structure design-前缀树
- STL中map按照vaule来排序
- 北京国济中医院
- #leetcode#Count Complete Tree Nodes
- @ResponseBody & @RequestBody
- SQLiteOpenHelper
- PHP判断中文字符串的长度和字节长度
- 多态
- 北京国济中医院