题目描述

实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。

示例:
Trie trie = new Trie();
trie.insert(“apple”);
trie.search(“apple”); // 返回 true
trie.search(“app”); // 返回 false
trie.startsWith(“app”); // 返回 true
trie.insert(“app”);
trie.search(“app”); // 返回 true

说明:
你可以假设所有的输入都是由小写字母 a-z 构成的。
保证所有输入均为非空字符串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

前缀树的结构

代码(c++)

class Trie {private:struct TrieNode{bool isEnd=false;TrieNode* next[26]={NULL};};TrieNode* trieNode;
public:/** Initialize your data structure here. */Trie() {trieNode=new TrieNode();}/** Inserts a word into the trie. */void insert(string word) {TrieNode* cur=trieNode;for(int i=0;i<word.size();i++){if(cur->next[word[i]-'a']==NULL){cur->next[word[i]-'a']=new TrieNode();}cur=cur->next[word[i]-'a'];}cur->isEnd=true;}/** Returns if the word is in the trie. */bool search(string word) {TrieNode* cur=trieNode;for(int i=0;i<word.size();i++){if(cur->next[word[i]-'a']==NULL) return false;cur=cur->next[word[i]-'a'];}return cur->isEnd==true?true:false;}/** Returns if there is any word in the trie that starts with the given prefix. */bool startsWith(string prefix) {TrieNode* cur=trieNode;for(int i=0;i<prefix.size();i++){if(cur->next[prefix[i]-'a']==NULL) return false;cur=cur->next[prefix[i]-'a'];}return true;}
};/*** Your Trie object will be instantiated and called as such:* Trie* obj = new Trie();* obj->insert(word);* bool param_2 = obj->search(word);* bool param_3 = obj->startsWith(prefix);*/

实现 Trie (前缀树)相关推荐

  1. LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板

    208. 实现 Trie (前缀树) Ideas 前缀树嘛,直接套模板咯,把之前写的拿过来抄一遍. 提供一下我的模板. Code Python class TrieNode:def __init__( ...

  2. leetcode 676. Implement Magic Dictionary | 676. 实现一个魔法字典(DFS+Trie 前缀树)

    题目 https://leetcode.com/problems/implement-magic-dictionary/description/ 题解 题意理解 前缀树问题,大意是是让你在字典中找到是 ...

  3. leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)

    题目 https://leetcode.com/problems/map-sum-pairs/ 题解 基于前缀树实现,可以参考:leetcode 208. Implement Trie (Prefix ...

  4. 208. 实现 Trie (前缀树)

    208. 实现 Trie (前缀树) Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键.这一数据结构有相当多的应用情景,例 ...

  5. leetcode208. 实现 Trie (前缀树)

    实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie(); trie.insert(" ...

  6. Leetcode —— 208. 实现 Trie (前缀树)(Python)

    实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie();trie.insert(" ...

  7. 【LeetCode】【HOT】208. 实现 Trie (前缀树)

    [LeetCode][HOT]208. 实现 Trie (前缀树) 文章目录 [LeetCode][HOT]208. 实现 Trie (前缀树) package hot;public class So ...

  8. leetcode前缀树java_Java实现 LeetCode 208 实现 Trie (前缀树)

    208. 实现 Trie (前缀树) 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie() ...

  9. Leetcode 208.实现 Trie (前缀树)(Implement Trie (Prefix Tree))

    Leetcode 208.实现 Trie (前缀树) 1 题目描述(Leetcode题目链接)   实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三 ...

最新文章

  1. python pandas for循环_python – 将一个for循环应用于Pandas中的多个DataFrame
  2. python中用str乘方_Python基础知识
  3. 【好程序员笔记分享】——UIView与CALayer详解
  4. python内置函数 exec eval compile
  5. centos6 进入命令行_CentOS6.8设置开机直接进入命令行模式
  6. Job 存储和持久化 (第五部分)
  7. Failure [INSTALL_FAILED_OLDER_SDK] [每件问题100块]
  8. 三维点云学习(4)7-ransac 地面分割+ DBSCAN聚类比较
  9. android audiorecord jni,Android AudioRecord初始化失败
  10. OpenGL学习(二)用户与交互
  11. excel 工作表保护密码破解代码
  12. 程序员必备之电脑护眼模式设置
  13. 在Ubuntu下为应用程序制作自定义桌面图标
  14. 用户运营4大策略体系搭建:增长框架+用户建模+场景化分层+数据运营
  15. LoadRunner 11安装和使用
  16. 荣耀30s怎么升级鸿蒙,惊喜!4部荣耀手机可升级至华为鸿蒙系统,网友表示:终于等到了...
  17. Catia 滚动轴承设计
  18. Mysql 构造一个触发器 audit_log
  19. mysql 入库乱码,如何解决mysql中文入库乱码问题
  20. You probably need to get an updated matplotlibrc file from解决方法

热门文章

  1. 如何成为一名云计算工程师
  2. 基于5G网络的远程控制机器人应用及测试
  3. 比特大陆“众叛亲离”?
  4. 为什么选择语雀-你想知道的都在这
  5. jasypt 配置文件加解密
  6. 计算机考研前沿知识怎么准备,2016考研复试面试前需充足准备9大内容
  7. xlsx表格怎么筛选重复数据_怎样在excel2010中筛选出重复数据呢?
  8. 成长型思维——人不成熟的五大特征和高效能人士的七个习惯
  9. 微信公众号成本分析服务器,分析:为什么微信公众号用户获取成本比App还高?...
  10. databanding 替换 findviewbyid