20210525Leetcode208.实现Trie前缀树
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前缀树相关推荐
- LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板
208. 实现 Trie (前缀树) Ideas 前缀树嘛,直接套模板咯,把之前写的拿过来抄一遍. 提供一下我的模板. Code Python class TrieNode:def __init__( ...
- leetcode 676. Implement Magic Dictionary | 676. 实现一个魔法字典(DFS+Trie 前缀树)
题目 https://leetcode.com/problems/implement-magic-dictionary/description/ 题解 题意理解 前缀树问题,大意是是让你在字典中找到是 ...
- leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)
题目 https://leetcode.com/problems/map-sum-pairs/ 题解 基于前缀树实现,可以参考:leetcode 208. Implement Trie (Prefix ...
- 208. 实现 Trie (前缀树)
208. 实现 Trie (前缀树) Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键.这一数据结构有相当多的应用情景,例 ...
- leetcode208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie(); trie.insert(" ...
- Leetcode —— 208. 实现 Trie (前缀树)(Python)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie();trie.insert(" ...
- 【LeetCode】【HOT】208. 实现 Trie (前缀树)
[LeetCode][HOT]208. 实现 Trie (前缀树) 文章目录 [LeetCode][HOT]208. 实现 Trie (前缀树) package hot;public class So ...
- leetcode前缀树java_Java实现 LeetCode 208 实现 Trie (前缀树)
208. 实现 Trie (前缀树) 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie() ...
- 实现 Trie (前缀树)
题目描述 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie(); trie.insert( ...
最新文章
- 干货 | 22道机器学习常见面试题目
- 增加新分类daily——“每天学了啥?”
- 剑指offer——用两个栈实现队列
- html+javascript实现数字微调,点击一下增加1或减去1
- java内存管理(堆、栈、方法区)
- Spring 3.0: Unable to locate Spring NamespaceHandler for XML schema namespace
- android 当手柄打游戏,玩手游需不需要配手柄?谈移动游戏外设的三个机会
- 关于自抗扰控制的一些中文论文
- 最近四款非常火的广告设计软件,学会大有作为
- XMPP即时通讯协议使用(六)——开发Openfire聊天记录插件
- Apk资源文件混淆[微信开源方法]
- 2017美团校招安卓岗
- 伤感日志:时光远走,流年轻度
- 三菱FX3Uplc控制的三轴程序通用编程,程序带有注解,有原点回归,机器手加减速设置
- 22. CTF综合靶机渗透(十五)
- 数组的降维与升维方法
- python-->with-上下文管理器
- OSI七层网络模型和四层网络模型详解
- python五种标准数据类型_python标准数据类型--数值
- Linux(centos7)基础操作
热门文章
- stm32f103+FFT+OLED的音乐频谱制作(只需三步即可)
- Ubuntu远程拷贝SCP问题
- Java中int型如何求幂_关于java:为什么Math.pow(int,int)慢于我的幼稚实现?
- Kinect for Windows SDK v2.0 开发笔记 (十) 高清面部帧(1) FACS 介绍
- DELL服务器硬件报错解决方法——错误代码寄解决和处理办法
- 百度地图三维盒子模型标注
- 深度学习 — — 入门PyTorch(一)
- 使用python+keras来识别狗的品种
- 思维导图XMind中如何换行
- 【软工学习】第十一章——知识产权与标准化基础