54、图论-实现Trie前缀树

 思路:

主要是构建一个trie前缀树结构。如果构建呢?看题意,应该当前节点对象下有几个属性:

1、next节点数组

2、是否为结尾

3、当前值

代码如下:

class Trie {class Node {boolean end;Node[] nexts;public Node() {end = false;nexts = new Node[26];}}public Node root;public Trie() {root = new Node();}public void insert(String word) {if (word == null) {return;}char[] chs = word.toCharArray();Node node = root;int path;for (int i = 0; i < chs.length; i++) {path = chs[i] - 'a';if (node.nexts[path] == null) {node.nexts[path] = new Node();}node = node.nexts[path];}node.end = true;}public boolean search(String word) {if (word == null) {return false;}char[] chs = word.toCharArray();Node node = root;int path;for (int i = 0; i < chs.length; i++) {path = chs[i] - 'a';if (node.nexts[path] == null) {return false;}node = node.nexts[path];}return node.end;}public boolean startsWith(String prefix) {if (prefix == null) {return false;}char[] chs = prefix.toCharArray();int path;Node node = root;for (int i = 0; i < chs.length; i++) {path = chs[i] - 'a';if (node.nexts[path] == null) {return false;}node = node.nexts[path];}return true;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2978527.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

1、opencv介绍与开发环境搭建

1、opencv介绍 OpenCV 是 Intel 开源计算机视觉库&#xff0c;是一个跨平台的开源计算机视觉和机器学习软件库。它由一系列 C 函数和少量 C 类构成&#xff0c;可用于开发实时的图像处理、计算机视觉以及模式识别程序。 该库有 2500 多种优化算法&#xff0c;其中包括一套全面…

经典网络解读—IResNet

论文&#xff1a;Improved Residual Networks for Image and Video Recognition&#xff08;2020.4&#xff09; 作者&#xff1a;Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao 链接&#xff1a;https://arxiv.org/abs/2004.04989 代码&#xff1a;https://github.com/iduta…

一文看懂电位器的接线方式

电位器是一种用于精确控制电路中电压、电流或信号幅度的电子元件&#xff0c;通过调整其内部电刷相对于电阻体的位置&#xff0c;可以连续改变其电阻值&#xff0c;进而实现对电路特性的微调或控制。根据电阻体材料、结构特点以及输出电压与输入电压&#xff08;或电刷位移&…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台&#xff0c;推进食品制造业数字化转型。在食用油产业中&#xff0c;数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具&#xff0c;正在推动…

苍穹外卖day8(1)地址簿功能

文章目录 前言一、产品原型二、数据库设计三、接口设计、代码实现1. 新增地址2. 查询登录用户所有地址3. 查询默认地址4. 修改地址5. 根据id删除地址6. 根据id查询地址7. 设置默认地址 前言 这部分主要是对用户端中地址簿的一些增删改查操作&#xff0c;业务逻辑比较简单&…

Leetcode 118 杨辉三角

目录 一、问题描述二、示例及约束三、代码方法一&#xff1a;数学 四、总结 一、问题描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。   在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 二、示例及约束 示例 1&#xff1a…

图像数据做并行规约时,如何确定共享内存和网格的大小

做并行规约时&#xff0c;如何确定共享内存和网格的大小 1、为什么要确定共享内存和网格大小2、共享内存大小定义3、网格大小 注&#xff1a;1、这里记录使用笔记&#xff0c;不对cuda的名词做解释&#xff0c;没有详细数学原理和代码。 2、环境&#xff1a;cuda8.0&#xff0c…

农业四情监测系统解析

TH-Q2农业四情监测系统&#xff0c;作为现代农业信息技术与农业生产深度融合的产物&#xff0c;正以其独特的优势为农业生产提供着全面而精准的数据支持。随着科技的不断发展&#xff0c;这一系统将在未来展现出更为广阔的应用前景和无限的发展潜力。 首先&#xff0c;农业四情…

vuex和pinia转态管理工具介绍

一、介绍 相同点&#xff1a; 都是Vue.js的状态管理工具 不同点&#xff1a; 区别PiniaVuex支持Vue2和Vue3都支持Vue3写法需要额外配置Mutation只有 state, getter 和 action&#xff0c;无Mutationaction异步、Mutation 同步actionaction支持同步和异步action异步、Mutatio…

dayjs使用小结

npm i dayjs 使用方法&#xff1a; import dayjs from dayjs import isBetween from dayjs/plugin/isBetweenconst But_Click () > {console.log(当前时间, dayjs().format(YYYY-MM-DD HH:mm:ss))console.log(日期的基本转换)console.log(当前时间5年, dayjs().add(5, &qu…

详解工业网关在线探测功能及用途

工业网关专为工业物联网应用设计&#xff0c;可实现包括不同通讯协议之间的兼容和转换&#xff0c;提供软硬件加密保障工业数据安全传输&#xff0c;发挥强大算力实现数据边缘预处理&#xff0c;联动联调工业网络设备实现高效协同等。在线探测功能是佰马工业网关的一项重要功能…

【电控笔记5.6】Butterworth滤波器

Butterworth滤波器 需求&#xff1a;在增益交越频率拥有最小的相位滞后 波器经常被使用原因是 Butterworth 滤波器对于给定阶数&#xff0c;拥有最倾斜的衰减率而在伯德图又不会产生凸峰&#xff0c;同时在低频段的相位滞后小&#xff0c;因此本节将为各位介绍 Butterworth 低…

【运维自动化-配置平台】如何通过模板创建集群和模块

通过【每天掌握一个功能点】配置平台如何创建业务机拓扑&#xff08;集群-模块&#xff09;我们知道了直接创建集群和模块的操作方法&#xff0c;直接创建的方式适合各集群模块都相对独立的场景&#xff0c;那大量的、标准规范的集群模块如何快速创建呢&#xff0c;这里就引入了…

OceanMind海睿思-知信版本升级:增加多模态能力,强化知识应用体验

本期OceanMind海睿思-知信产品能力升级&#xff1a; 多模态知识构建&#xff0c;增加知识库的图片知识理解能力多模态知识问答&#xff0c;强化问答体验效果 1 多模态升级 市场上现有的主流基于大模型框架的智能知识库产品&#xff0c;在知识构建和知识应用时&#xff0c;仅…

云打印比线下打印店便宜吗?

随着云打印的火热&#xff0c;现在越来越多的同学都选择云打印服务了。但是仍有部分没有接触过云打印的同学&#xff0c;担心云打印会乱收费&#xff0c;一直坚持去线下打印店打印。那么云打印比线下打印店便宜吗&#xff1f;云打印是怎么收费的&#xff1f;今天小易就以易绘创…

vue+springboot+websocket实时聊天通讯功能

前言 在我的前一篇文章里 vuespringboot实现聊天功能 &#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388; 实现了最最基础的聊天功能&#xff0c;可以通过聊天互相给对方发送信息 &#x1f388;&#x1f388;&#x1f388;&…

爱普生发布一款16位MCU产品用于大电流LED驱动

精工爱普生发布一款内置Flash存储器的16位微控制器S1C17M13 该新品可以提供最大56mA的驱动电流用于驱动发光二极管(LED) 以往爱普生的微处理器大多继承了液晶驱动器电路&#xff0c;但近来随着工业自动化和家用设备使用7段LED显示的数量大幅增加&#xff0c;爱普生也推出了对应…

Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路

背景介绍 Rust 是一种多范式、通用的编程语言&#xff0c;强调性能、类型安全和并发性。它通过一个称为“借用检查器”的机制在编译时追踪所有引用的对象生命周期&#xff0c;以强制实现内存安全&#xff0c;即确保所有引用都指向有效的内存&#xff0c;而不需要垃圾收集器。 …

【Git教程】(十五)二分法排错 — 概述及使用要求,执行过程及其实现(用二分法人工排错或自动排错),替代解决方案 ~

Git教程 二分法排错 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现3.1 用二分法人工排错3.2 用二分法自动排错 4️⃣ 替代解决方案 在开发过程中&#xff0c;我们经常会突然遇到一个错误&#xff0c;是之前早期版本在成功通过测试时没有出现过的。这时候&#xff0c;时下较…

Linux thermal框架介绍

RK3568温控 cat /sys/class/thermal/thermal_zone0/temp cat /sys/class/thermal/thermal_zone1/temp cat /sys/class/thermal/cooling_device0/cur_state cat /sys/class/thermal/cooling_device1/cur_state cat /sys/class/thermal/cooling_device2/cur_state thermal_zone…