字典树基础(Java实现)

字典树也叫Trie,是一种树形结构,其中每个节点可以存储一些变量表示该字符串出现的数量。每条边表示一个字符,如节点9存储一个变量cnt,说明存在三个字符串为“cbc” 

例题:前缀判定

import java.math.BigInteger;
import java.util.*;public class Main {static class TreeNode{HashMap<Character,TreeNode>map;int cnt;public TreeNode(){cnt=0;map=new HashMap<>();}}static TreeNode root;//根节点//插入字符串public static void insert(String s){TreeNode c=root;for(int i=0;i<s.length();i++){char x=s.charAt(i);if(!c.map.containsKey(x)){c.map.put(x,new TreeNode());c.cnt++;}c=c.map.get(x);}c.cnt++;}//查询字符串是否出现public static boolean query(String s){TreeNode c=root;for(int i=0;i<s.length();i++){if(!c.map.containsKey(s.charAt(i))){return false;}c=c.map.get(s.charAt(i));}return c.cnt>0;}//查找出现的次数public static int query1(String s){TreeNode c=root;for(int i=0;i<s.length();i++){if(!c.map.containsKey(s.charAt(i))){return 0;}c=c.map.get(s.charAt(i));}return c.cnt;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();int m=scanner.nextInt();root=new TreeNode();for(int i=0;i<n;i++){String s=scanner.next();insert(s);}for(int i=0;i<m;i++){String s=scanner.next();if(query(s)){System.out.println("Y");}else{System.out.println("N");}}//出现的前缀System.out.println(query1("aa"));}}

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

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

相关文章

set/ multiset 容器(二)

一、set查找和统计 函数原型&#xff1a; find(key); //查找key是否存在,若存在&#xff0c;返回该键的元素的迭代器&#xff1b;若不存在&#xff0c;返回 set.end(); count(key); //统计key的元素个数代码示例&#xff1a; #include<iostream> using namespace std;…

【Java入门教程】第十八讲:String类的常见操作及其应用

Java是一种广泛使用的编程语言&#xff0c;它的标准库中包含了大量的类和方法&#xff0c;以支持各种编程任务。在这些类中&#xff0c;String类无疑是最常用、最重要的类之一。 String类在Java中用于表示和操作字符串&#xff0c;即字符序列。本文将详细介绍String类的基本概…

算法刷题记录 Day34

算法刷题记录 Day34 Date: 2024.03.30 lc 63. 不同路径II class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& G) {// dp[i][j]表示从&#xff08;0&#xff0c;0&#xff09;到&#xff08;i,j&#xff09;的路径数&#xff1b;/…

Kubernetes(k8s):网络插件之Calico安装与详解

Kubernetes&#xff08;k8s&#xff09;&#xff1a;网络插件之Calico安装与详解 1、什么是Calico&#xff1f;2、安装和配置Calico&#xff08;控制节点-master执行&#xff09;3、配置网络策略4、 Calico 的 yaml 文件部分详解1、ConfigMap配置2、DaemonSet 配置 5、calico-k…

Vue自定义组件中使用CSS变量设置样式?

在 Vue 自定义组件中使用 CSS 变量来设置样式&#xff0c;你可以通过在组件的样式中使用 var(–variable-name) 来引用 CSS 变量。然后&#xff0c;在组件的根元素或具体的元素上&#xff0c;使用 :style 绑定来动态设置 CSS 变量的值。以下是一个示例代码。 子组件 (CustomCo…

基于mqtt的物联网控制移动应用程序开发

具体实现问题 MQTT模型、特点、服务质量、报文、消息类型表 java实现mqtt两种方式&#xff1a;Paho Java原生库、spring boot MQTT与HTTP&#xff1a;哪一个最适合物联网&#xff1f; mqtt协议和http协议区别 应用是如何实现mqtt协议 通过调用安卓的MQTT库来实现MQTT协议&…

【智能算法】蜜獾算法(HBA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;FA Hashim等人受到自然界中蜜獾狩猎行为启发&#xff0c;提出了蜜獾算法&#xff08;(Honey Badger Algorithm&#xff0c;HBA&#xff09;。 2.算法原理 2.1算法思想 蜜獾以其…

【力扣】80.删除有序数组中的重复项Ⅱ

80.删除有序数组中的重复项Ⅱ 题目描述 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次&#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用…

Mysql 常用SQL语句

1、查看mysql中所有的数据库&#xff0c; show databases; 2、创建库 create database 库名;&#xff08;也可以用 create database if not exists 库名; 表示如果库不存在再创建&#xff09; 例&#xff1a;create database if not exists ecology; 3、删除库 …

负载均衡:实现高效稳定的网络服务

随着互联网技术的快速发展&#xff0c;网络应用服务的规模和复杂性日益增加。为了满足日益增长的用户需求&#xff0c;确保服务的高可用性和稳定性&#xff0c;负载均衡技术应运而生。本文将详细介绍负载均衡的概念、原理、分类以及应用场景&#xff0c;帮助读者深入了解这一关…

[网鼎杯 2020 朱雀组]Nmap1

打开题目 在源代码中看到了提示 先随便输入127.0.0.1 那我们试试输入 127.0.0.1 | ls 可以看到 | 被转义符号\所转义 那我们输入 127.0.0.1 /| ls 得到三条反斜线 我们猜测&#xff0c;我们输入的东西是被escapeshellarg和escapeshellcmd处理过后的结果 我们输入的东西必须…

element-ui tag 组件源码分享

今日简单分享一下 tag 组件的源码实现&#xff0c;主要从以下三个方面来分享&#xff1a; 1、tag 组件页面结构 2、tag 组件属性 3、tag 组件方法 一、tag 组件页面结构 vue2 中使用 jsx 语法小结&#xff1a; 1.1 需要安装 babel-plugin-transform-vue-jsx 和 vue/babel-…

echarts仪表盘特殊样式

const drawChartOption function (value, max) {const colorConfig {name: 测试,colorList: {text: #fff,line2: {type: linear,x: 0, // 右y: 0, // 下x2: 1, // 左y2: 0, // 上colorStops: [// {// offset: 0,// color: transparent// },{offset: 0.1,color: #031e…

Permission Denial: package=android does not belong to uid=2000

02-01 03:14:17.230 1685 2701 W ContextImpl: Calling a method in the system process without a qualified user: xxxxxxxxx 02-01 03:14:17.231 1685 2701 W ActivityTaskManager: Permission Denial: packageandroid does not belong to uid2000 这类问题往往是调用端…

服务器托管让服务器管理更轻松高效

在信息化飞速发展的今天&#xff0c;服务器作为企业数据处理和信息存储的核心设备&#xff0c;其管理的重要性日益凸显。服务器托管&#xff0c;作为一种高效、专业的服务器管理方式&#xff0c;正逐渐成为众多企业的首选。那么&#xff0c;服务器托管究竟是如何让服务器管理更…

AI版青花瓷

3月22日&#xff0c;Suno正式上线V3版本&#xff0c;很多人都称之为AI音乐的"ChatGPT"时刻&#xff0c;从此人人都可以是作曲家&#xff0c;先来听下最近霸榜的只因你太美baby来感受下它的厉害之处&#xff08;我已经被洗脑了哈哈&#xff09; 1. Suno 介绍 根据Sun…

配电线路故障仿真中的基本概念

1. 什么事故障录波&#xff1a; 记录电力系统在发生故障时的电压、电流等关键参数的波形变化。 2. 电压时间型保护装置&#xff1a; 电压时间型保护装置的核心思想是通过设定一定的电压阈值和时间延迟&#xff0c;当检测到的电压超过这个阈值并且持续时间超过设定的时间时&a…

sqlmap基础知识

一、sqlmap简介 sqlmap是一个开源的渗透测试工具&#xff0c;可以自动检测和利用SQL注入漏洞以及接管数据库服务器的过程。 官网&#xff1a; sqlmap.org 核心功能 漏洞检测漏洞利用 学习关键点 基于sqlmap进行sql注入漏洞的检测&#xff0c;注入利用和攻击基于sqlmap进…

便携式组件el测试仪讲解

TH-EL3便携式组件EL&#xff08;电致发光&#xff09;测试仪是一种专门用于检测光伏组件质量的设备。该设备基于电致发光的原理&#xff0c;通过非破坏性的方式快速准确地检测出光伏组件内部的各种缺陷和问题。 产品概述 便携式组件EL测试仪是一种轻便、易于携带的设备&#…

Mysql实战--为什么表数据删掉一半,表文件大小不变

经常会有同学来问我&#xff0c;我的数据库占用空间太大&#xff0c;我把一个最大的表删掉了一半的数据&#xff0c;怎么表文件的大小还是没变&#xff1f; 那么今天&#xff0c;我就和你聊聊数据库表的空间回收&#xff0c;看看如何解决这个问题。 这里&#xff0c;我们还是针…