[数据结构]字典树

概念:

字典树是一种数据结构,常用于统计,排序和保存大量的字符串(但不仅限于字符串)。主要思想是利用字符串的公共前缀来节约存储空间。

实现原理:

在开发的过程中如果需要使用字典树,不必自己编写,使用hutool提供的WordTree工具类即可,使用案例如下:

public static final List<String> blackList = Arrays.asList("File","exec");public static final WordTree wordTree;static{// 初始化字典树wordTree = new WordTree();wordTree.addWords(blackList);}public ExecuteResponse executeCode(ExecuteRequest executeRequest) {// 校验黑名单代码FoundWord foundWord = wordTree.matchWord(code);if(foundWord != null){System.out.println("代码中包含禁止词:" + foundWord);return null;}}

注意这里使用静态代码块进行WordTree的初始化是因为executeCode方法被多次执行,而我们只需要有一个WordTree即可,并不是使用的强制要求。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图的创建和遍历

孤勇者探险&#xff08;图的遍历&#xff09; 作者 YJ 单位 西南石油大学 一款名为“孤勇者探险”的游戏&#xff0c;游戏中共有若干个小岛&#xff0c;每个岛上均有怪兽&#xff0c;闯关者打倒岛上的怪兽则可获得该岛对应的游戏积分&#xff08;每个岛的积分根据难度可能不相…

【recast-navigation-js】使用three.js辅助绘制Agent

目录 说在前面使用Tweakpane添加CrowAgent其他 说在前面 操作系统&#xff1a;windows 11浏览器&#xff1a;edge版本 124.0.2478.97recast-navigation-js版本&#xff1a;0.29.0golang版本&#xff1a;1.21.5 使用Tweakpane fps面板interface FPSGraph extends BladeApi<B…

C语言编程零基础:开启编程之旅的起点

C语言编程零基础&#xff1a;开启编程之旅的起点 在数字化时代的浪潮中&#xff0c;编程技能已逐渐成为一项必备的基本素养。而C语言&#xff0c;作为计算机编程领域的入门语言&#xff0c;以其简洁明了、结构清晰的特点&#xff0c;吸引着无数初学者踏上编程的征程。那么&…

JAVA流程控制--For循环

1.虽然所有循环都可以用while或do...while表示&#xff0c;但Java提供了另外一种语句——for循环&#xff0c;使一些循环结构变得简单 2.for循环语句是支持迭代的一种通用结构&#xff0c;是最有效&#xff0c;最灵活的循环&#xff0c;结构 3.for循环执行的次数是在…

单元测试的心法分享

大家好&#xff0c;我是G探险者&#xff01; 今天我们简单聊聊单元测试的哪些事儿~ 两天时间我玩明白了单元测试的套路。 这里我分享一下思路。 在我眼里单元测试室什么&#xff1f; 请看这张草图&#xff1a; 单元测试主要关注单个代码单元&#xff08;通常是类或方法&am…

Docker成功启动Rabbitmq却访问不了管理页面问题解决

目录 启动步骤&#xff1a; 无法访问问题总结&#xff1a; 启动步骤&#xff1a; 拉取镜像&#xff1a; docker pull rabbitmq 运行&#xff1a; docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq进入容器&#xff1a; docker exec -it 容器id /bin/…

python基础知识点总结(第二节判断与循环)

一、判断语句 1、if判断语句 ~if语句的基本格式 if 要判断的条件&#xff1a; 条件成立时&#xff0c;要做的事情 ~if语句的注意事项&#xff1a; 判断语句的结果一定要是布尔类型不要忘记判断条件后的&#xff1a;冒号归属于if语句的代码块&#xff0c;需要在前方填…

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于软件开发人员和团队。使用此应用程序&#xff0c;您可以构建和调试现代Web应用程序&#xff0c;并利用扩展帮助探索几乎任何编程语言。…

深入理解MySQL中的事务管理

引言 在数据库管理系统中&#xff0c;事务是确保数据一致性和完整性的基本单位。MySQL作为一种广泛使用的数据库系统&#xff0c;其事务管理机制是保证数据操作正确性和可靠性的关键。本文将深入探讨MySQL中的事务管理&#xff0c;从基础概念到高级应用&#xff0c;帮助读者全…

PySide6在VScode中提示:vscode module not found error: no module named ‘pyside6‘解决方案

最近在B站学习PySide6&#xff1a;PySide6百炼成真&#xff0c;带你系统性入门Qt https://www.bilibili.com/video/BV1c84y1N7iL?p3&vd_source256724e7f8bba144c62a17f9fa758a04 学习到第3节&#xff1a;003基础框架 003基础框架 from PySide6.QtWidgets import QApplicat…

Kotlin 重写与重载

文章目录 重写&#xff08;Override&#xff09;重载&#xff08;Overload&#xff09; 重写&#xff08;Override&#xff09; 重写通常是指子类覆盖父类的属性或方法&#xff0c;通常会标记为override&#xff1a; open class Base {open val name "Base"open f…

【讲解下常见的分类算法,什么是分类算法?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

千锋教育大优惠

IT全学科自学至尊卡&#xff08;3年卡&#xff09; Linux云计算运维、Python全栈、数据分析、人工智能、Java、大前端、网络安全、物联网、全媒体、影视剪辑等14大主流方向&#xff0c;300精品视频课程免费学。课程持续更新&#xff0c;电脑端手机APP小程序多平台无忧畅学&…

Android 输入法框架流程

输入法框架流程梳理 输入法框架构成 输入法管理端&#xff08;IMMS/InputMethodManagerService&#xff09; 主要负责输入法服务端与客户端的绑定&#xff1b;输入法的切换/显示/隐藏/启用/关闭。输入法服务端&#xff08;IMS/InputMethodService&#xff09; 输入法服务&…

FS118M 单A口QC协议芯片

FS118M是一个QC快充协议芯片&#xff0c;FS118M可以识别插入的手机类型&#xff0c;选择最为合适的协议应对手机需要。USB Type-A 口的 D连接到FS118M芯片&#xff0c;当手机插入到 USB Type-A 口后&#xff0c;根据各个协议的约定&#xff0c;手机和FS118M之间将开始互相识别&…

nginx的配置粗记

小白nginx的配置随笔&#xff08;随便记记&#xff09; 前言 我们都知道nginx有很多用途&#xff0c;比如&#xff1a;负载均衡&#xff0c;反向代理&#xff0c;网关路由&#xff0c;解决跨域等问题。我这次开发项目&#xff0c;用到的一些功能也涉及到了对nginx的配置&#…

证据质证(案例解说)

证据质证 质证举例 质证思路: 证据为复印件,单方面制作,真实性不予认可 证据: 2014年的员工考勤,欲证明2014年公司休园期间,员工还是应该正常上班的,所以2015年员工以公司休园为由休息的理由不能成立。 质证:证据为复印件,真实性不予认可,同时是公司单方出具的,其…

JVM类加载时机

Java程序对类的使用分为主动引用和被动引用&#xff0c;主动引用时&#xff0c;会触发类的初始化&#xff08;在JVM虚拟机规范中&#xff0c;对于类在什么时候加载并没有做限定&#xff0c;但是对类的初始化时机有规定&#xff09;&#xff0c;而被动引用则不会。 主动引用 主…

MySQL—函数—流程控制函数(基础)

一、引言 接下来&#xff0c;我们就进入函数的最后一个部分&#xff1a;流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中&#xff0c;经常用来实现条件的筛选&#xff0c;从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…

如何在镜像中安装固定版本的node和npm

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、使用 Dockerfile 创建自定义镜像二、如何安装固定版本的node及npm总结 前言 最近在做前端工程化相关的内容&#xff0c;需要在一个镜像内安装固定版本的 N…