[LeetCode 208] Implement Trie (Prefix Tree)

华为OD机试 - 不含101的数(Python/JS/C/C++ 双机位C卷 100分) 本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。小明在学习二进制时,发现了一类不含101的数,也就是:现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?输入的唯一一行包含两个正整数。输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。8 1668 → “1000” 阅读详情

Implement a trie with insert, search, and startsWith methods.

Note:
You may assume that all inputs are consist of lowercase letters a-z.


class TrieNode {
    boolean exist = false;
    TrieNode[] children;
    char val;
    // Initialize your data structure here.
    public TrieNode() {
        
    }
    public TrieNode(char c) {
        this.val = c;
    }
}

public class Trie {
    private TrieNode root;

    public Trie() {
        root = new TrieNode();
    }

    // Inserts a word into the trie.
    public void insert(String word) {
        if(word == null || word.length()<=0) return;
        TrieNode pre = root;
        for(int i=0;i<word.length();i++){
            if(pre.children == null){
                pre.children = new TrieNode[26];
            }
            int index = word.charAt(i)-'a';
            if(pre.children[index]==null){
                pre.children[index] = new TrieNode(word.charAt(i));
            }
            pre = pre.children[index];
            if(i == word.length()-1){
                pre.exist = true;
            }
        }
    }

    // Returns if the word is in the trie.
    public boolean search(String word) {
        if(word == null || word.length() <= 0) return false;
        TrieNode pre = root;
        for(int i=0;i<word.length();i++){
            int index = word.charAt(i)-'a';
            if(pre.children == null || pre.children[index]==null){
                return false;
            }
            if(i == word.length()-1 && pre.children[index].exist == false){
                return false;
            }
            pre = pre.children[index];
        }
        return true;
    }

    // Returns if there is any word in the trie
    // that starts with the given prefix.
    public boolean startsWith(String prefix) {
        if(prefix == null || prefix.length() <= 0) return false;
        TrieNode pre = root;
        for(int i=0;i<prefix.length();i++){
            int index = prefix.charAt(i)-'a';
            if(pre.children == null || pre.children[index]==null){
                return false;
            }
            pre = pre.children[index];
        }
        return true;
    }
}

// Your Trie object will be instantiated and called as such:
// Trie trie = new Trie();
// trie.insert("somestring");
// trie.search("key");




智能硬件产品:做好一款电子硬件产品,工具必不可少 上到战略规划,中至运营策略,下至人性洞察,。最初做产品时,笔者从一开始就陷入到了对工具的痴迷,包括:PS、AutoCAD、PROE、犀牛、Axure、Keyshot、Altium……大概将 2 个多月的时间和精力都消耗在了学习使用工具上。通过工具的运用也确实提高了工作效率,在仅有创意的前提下通过灵活运用工具,一年内便成功申请了多个实用新型专利、设计了多款产品的高保真原型图等。正在上传…重新上传取消。 阅读详情

相关推荐

实战指南:如何用Kamailio+FreeSWITCH搭建高并发企业通信系统(附配置模板)

本文提供了一份实战指南,详细介绍了如何利用Kamailio与FreeSWITCH构建高并发企业通信系统。通过将Kamailio作为高性能SIP信令平面处理路由与负载均衡,FreeSWITCH作为媒体与应用平面负责通话与业务逻辑,实现信令与媒体分离的电信级架构。文章深入解析了架构设计、核心配置、集群部署与性能优化,并附有配置模板,旨在帮助企业构建可水平扩展、高可用的通信解决方案。

dell8的博客 364

LeetCode 208. 实现 Trie (前缀树)

字典树

英雄哪里出来 1465

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 461

leetcode——第208题——前缀(字典)树

题目: Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 word 。 boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。 boolean startsWi

linping_的博客 224

RK3588内核崩溃日志捕获:pstore与ramoops的实战配置指南

本文详细介绍了在RK3588嵌入式设备上配置pstore与ramoops以捕获内核崩溃日志的实战指南。通过内核配置调整、设备树设置及高级调试技巧,帮助开发者有效定位系统崩溃原因,特别适合户外智能设备等无法长期连接调试器的场景。文章还提供了生产环境优化建议,确保日志捕获的可靠性与安全性。

weixin_29189363的博客 407

从D触发器到8位SAR ADC:Cadence Virtuoso完整设计仿真指南

逐次逼近寄存器型模数转换器(SAR ADC)是混合信号集成电路中的基础架构,其核心是一个由D触发器构成的时序状态机。在数字电路设计中,D触发器常用于数据锁存、移位寄存和时钟分频,而在SAR ADC中,它恰好承担了节拍发生与结果寄存的双重角色。理解D触发器的工作机制,是掌握逐次逼近逻辑的关键前提。工程实践中,借助Cadence Virtuoso平台,可以从门级搭建SAR逻辑,并结合动态比较器与电荷重分配电容DAC,完成从原理图到瞬态仿真的全流程验证。通过FFT分析计算SNDR与ENOB,能够量化评估ADC的动

weixin_29178069的博客 285

Leetcode 208-实现 Trie (前缀树)

一个朴素的想法是直接使用「二维数组」来实现 Trie 树。 使用二维数组 trie[] 来存储我们所有的单词字符。 使用 index 来自增记录我们到底用了多少个格子(相当于给被用到格子进行编号)。 使用 count[] 数组记录某个格子被「被标记为结尾的次数」(当 idx 编号的格子被标记了 n 次,则有 cnt[idx]=n)。 class Trie { int N = 100009; // 直接设置为十万级 int[][] trie; int[] count; int

Helene1996的博客 331

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3733

LeetCode刷题记录----208.实现前缀树(Medium)

本文详细介绍了前缀树(Trie)的实现与优化方法。前缀树是一种树形结构,每个节点存储字符串前缀,通过边表示字符连接子节点。文章首先给出了基础实现方案,包含节点类(TrieNode)和前缀树类(Trie)的设计,支持插入、检索字符串和前缀功能。随后提出了优化方案:1)移除节点存储的前缀字符串;2)使用固定长度数组替代哈希表存储子节点;3)添加isEnd标记字符串结尾。优化后时间复杂度保持O(L)(L为字符串长度),空间复杂度降至O(T·Σ)(T为总字符串长度,Σ为字符集大小26)。文章通过对比两种实现,展示了

misco43的博客 1060

小红书私信接口与Hook技术实战:微信跳转卡片的合规与破解之道

本文深入探讨了小红书私信接口与Hook技术的实战应用,重点解析了微信跳转卡片的合规使用与破解方法。通过官方私信接口的合规玩法与Xposed框架的Hook技术对比,为开发者提供了技术选型指南和实战建议,帮助实现高效的用户跳转与转化。

weixin_30399821的博客 735

6.6kW的车载充电器(On-Board Charger, OBC)电路分析

图片展示了6.6kW的车载充电器(On-Board Charger, OBC)电路,其中包含双向和单向两种拓扑结构。接下来我们将深入分析每个模块的设计、原理及其优势,以帮助理解不同结构在实际应用中的选型和应用。

weixin_43199439的博客 5659

leetcode | go | 第208题 | 实现Tire(前缀树)

【代码】leetcode | go | 第208题 | 实现Tire(前缀树)

iCling的博客 388

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2290

LeetCode 208: Implement Trie (Prefix Tree)

Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs are consist of lowercase letters a-z. 前缀查找树,简单的可以实现为一种26叉树。需要在节点上增加一个字段,标明该节点是否是一个单词,还是仅仅是单词的前缀。代码

哈哈的个人专栏 4107

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Leetcode 208: Implement Trie (Prefix Tree)

Implement Trie (Prefix Tree) Total Accepted: 601 Total Submissions: 2396 Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs are consist of

西施豆腐渣 5065

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode 208. Implement Trie (Prefix Tree) 题解

本题是 Trie 树的经典实现。每个节点包含子节点字典和结束标志插入:逐字符构建路径搜索:检查路径是否存在且结束标志为真前缀查询:只检查路径是否存在。

cannonjinx的博客 4070

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[Leetcode] 208. Implement Trie (Prefix Tree) 解题报告

题目: Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs are consist of lowercase letters a-z. 思路: 前缀树(Prefix Tree,也称Trie)是一种表示英文字典的典型数据结构,它可

魔豆(Magicbean)的博客 693

[leetcode] 208. Implement Trie (Prefix Tree) @ python

原题 Implement a trie with insert, search, and startsWith methods. Example: Trie trie = new Trie(); trie.insert(“apple”); trie.search(“apple”); // returns true trie.search(“app”); // returns false...

闲庭信步 785

[leetcode] 208. Implement Trie (Prefix Tree)

Description Implement a trie with insert, search, and startsWith methods. Example: Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // returns true trie.search("app"); // ret...

Learning from the mistakes 174

LeetCode 208. Implement Trie (Prefix Tree)

题目描述:实现Trie树的查找、查找前缀、插入等操作。 题目链接:LeetCode 208. Implement Trie (Prefix Tree) 代码如下: class Trie: def __init__(self): """ Initialize your data structure here. """ s...

Za七杂⑧ 456

leetcode[208]:Implement Trie (Prefix Tree)

【题目】 Implement a trie with insert, search, and startsWith methods.Note: You may assume that all inputs are consist of lowercase letters a-z. 【解析】 题目要求实现Prefix Tree(前缀树)的insert、search和startWith方法,所以

sunwill的博客 562

LeetCode 208. Implement Trie (Prefix Tree)

题目来源:https://leetcode.com/problems/implement-trie-prefix-tree/ 问题描述 208.Implement Trie (Prefix Tree) Medium Implement a trie withinsert,search, andstartsWithmethods. Example: Trie trie = n...

da_kao_la的博客 209

LeetCode 208. Implement Trie (Prefix Tree) - 前缀树(Trie Tree or Prefix Tree)系列题1

前缀树有3个基本性质: 根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。 LeetCode中出现前缀树相关题的频率也比较高,其中208. Implement Trie (Prefix Tree)是前缀树的入门题,也是其他所有可以用前缀树解答的题的基础。

hgq522的博客 373

【leetcode笔记】Python实现 208. Implement Trie (Prefix Tree)

题目地址:https://leetcode.com/problems/implement-trie-prefix-tree/description/ 题目描述 Implement a trie with insert, search, and startsWith methods. Example: Trie trie = new Trie(); trie.insert("apple"); tr...

Jack_Kuo的博客 895

Leetcode208. Implement Trie (Prefix Tree)

实现前缀树。

magic_jiayu的博客 179

【LeetCode】208. Implement Trie (Prefix Tree) 实现 Trie (前缀树)

【LeetCode】208. Implement Trie (Prefix Tree) 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/implement-trie-prefix-tree/description/ 题目描述: Implement a trie with insert, searc...

负雪明烛 5027
上一篇: [LeetCode 222]Count Complete Tree Nodes
下一篇: [LeetCode 258] Add Digits
Mavs
博客等级 码龄17年 166粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值