class Trie {private:bool isEnd;//是否是字符串的结尾Trie *next[26];//指向类别的指针,这也是一个知识盲区//第一次知道指针数组的作用
public:/** Initialize your data structure here. */Trie() {isEnd = false;memset(next,0,sizeof(next));}/** Inserts a word into the trie. */void insert(string word) {Trie *node = this;//指向这个实例的第一个for(char ch : word){if(node->next[ch-'a'] == NULL)//什么时候用nullptr,什么时候用NULLnode->next[ch-'a'] = new Trie();//还是不清楚new到底用在哪里node = node->next[ch-'a'];//是以指向下一个的指针所存储的位置来决定下一个字符是什么,而不是将具体的字符存进去}node->isEnd = true;//标记字符串的结尾}/** Returns if the word is in the trie. */bool search(string word) {Trie*node = this;for(char ch : word){if(node->next[ch-'a'] == NULL)return false;node = node->next[ch-'a'];}return node->isEnd;//而不是直接返回true,万一只是一个单词的一部分呢?}/** Returns if there is any word in the trie that starts with the given prefix. */bool startsWith(string prefix) {Trie*node = this;for(char ch : prefix){if(node->next[ch-'a'] == NULL)return false;node = node->next[ch-'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);*/

不懂的地方
1)this指针,指向实例化的class
(但是对于指向class的指针基本不懂)
2)memset函数:用于初始化某块内存

3)

20210525Leetcode208.实现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. 实现 Trie (前缀树)

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

最新文章

  1. 干货 | 22道机器学习常见面试题目
  2. 增加新分类daily——“每天学了啥?”
  3. 剑指offer——用两个栈实现队列
  4. html+javascript实现数字微调,点击一下增加1或减去1
  5. java内存管理(堆、栈、方法区)
  6. Spring 3.0: Unable to locate Spring NamespaceHandler for XML schema namespace
  7. android 当手柄打游戏,玩手游需不需要配手柄?谈移动游戏外设的三个机会
  8. 关于自抗扰控制的一些中文论文
  9. 最近四款非常火的广告设计软件,学会大有作为
  10. XMPP即时通讯协议使用(六)——开发Openfire聊天记录插件
  11. Apk资源文件混淆[微信开源方法]
  12. 2017美团校招安卓岗
  13. 伤感日志:时光远走,流年轻度
  14. 三菱FX3Uplc控制的三轴程序通用编程,程序带有注解,有原点回归,机器手加减速设置
  15. 22. CTF综合靶机渗透(十五)
  16. 数组的降维与升维方法
  17. python-->with-上下文管理器
  18. OSI七层网络模型和四层网络模型详解
  19. python五种标准数据类型_python标准数据类型--数值
  20. Linux(centos7)基础操作

热门文章

  1. stm32f103+FFT+OLED的音乐频谱制作(只需三步即可)
  2. Ubuntu远程拷贝SCP问题
  3. Java中int型如何求幂_关于java:为什么Math.pow(int,int)慢于我的幼稚实现?
  4. Kinect for Windows SDK v2.0 开发笔记 (十) 高清面部帧(1) FACS 介绍
  5. DELL服务器硬件报错解决方法——错误代码寄解决和处理办法
  6. 百度地图三维盒子模型标注
  7. 深度学习 — — 入门PyTorch(一)
  8. 使用python+keras来识别狗的品种
  9. 思维导图XMind中如何换行
  10. 【软工学习】第十一章——知识产权与标准化基础