[C++][算法基础]字符串统计(Trie树)

news2024/10/7 14:32:04

维护一个字符串集合,支持两种操作:

  1. I x 向集合中插入一个字符串 x;
  2. Q x 询问一个字符串在集合中出现了多少次。

共有 N 个操作,所有输入的字符串总长度不超过 10^{5},字符串仅包含小写英文字母。

输入格式

第一行包含整数 N,表示操作数。

接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。

输出格式

对于每个询问指令 Q x,都要输出一个整数作为结果,表示 x 在集合中出现的次数。

每个结果占一行。

数据范围

1≤N≤2∗10^{4}

输入样例:
5
I abc
Q abc
Q ab
I ab
Q ab
输出样例:
1
0
1

代码:

#include<iostream>
using namespace std;

const int N = 100010;
int son[N][26],count[N],idx;

void insert(string str){
    int p = 0;
    for(auto s:str){
        int num = s - 'a';
        if(son[p][num] == 0){
            idx++;
            son[p][num] = idx;
        }
        p = son[p][num];
    }
    count[p]++;
}

int query(string str){
    int p = 0;
    for(auto s:str){
        int num = s - 'a';
        if(son[p][num] == 0){
            return 0;
        }
        p = son[p][num];
    }
    return count[p];
}

int main(){
    int n;
    cin>>n;
    char op;
    string str;
    while(n--){
        cin>>op;
        cin>>str;
        if(op == 'I'){
            insert(str);
        }else if(op == 'Q'){
            cout<<query(str)<<endl;
        }
    }
    return 0;
}

 

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

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

相关文章

应用配置不用愁,CRMEB Pro版新功能贴心保障

“配置系统应用时&#xff0c;没设置过的还得去搜教程&#xff0c;有些细节不了解还很容易设置错误&#xff0c;又得从头再来&#xff0c;真的好麻烦&#xff01;” “还有一些系统的设置&#xff0c;只说明了上传的素材类型和规格&#xff0c;根本不清楚到底是哪个地方的&…

大模型技术应用实训室解决方案

一、建设背景 随着大数据、云计算等技术的不断进步&#xff0c;大模型技术已成为人工智能领域的重要研究方向&#xff0c;其在自然语言处理、计算机视觉、语音识别等领域展现出强大的应用潜力。自2022年11月ChatGPT问世以来&#xff0c;大模型开始备受关注&#xff0c;科技巨头…

自偏置电流镜、wilson和cascode电流镜、低压自偏置电流镜

1.自偏置电流镜 参考1&#xff1a;正确偏置和自启动电路 正确偏置&#xff1a; 2.自启动电路 参考2&#xff1a;两种自启动电路、cascode低压设计、自启动充放电过程分析 3.低压自偏置电流镜 参考3&#xff1a;电阻偏置分析 VbVgs3VodVgs1Vod 4.电阻偏置和MOS偏置的分…

【攻防世界】easyphp(PHP代码审计)

进入题目环境&#xff0c;检查页面内容&#xff0c;页面附有源代码&#xff1a; <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) &&a…

棋牌室计时吧台计费收费灯控管理系统软件操作流程

棋牌室计时吧台计费收费灯控管理系统软件操作流程 一、前言 以下软件操作教程以&#xff0c;佳易王棋牌桌球计时计费管理系统软件灯控版V17.87为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 该计时计费软件可以是棋牌和桌球混合同时计时计费 …

Unity自己实现的中英文的切换(简单好抄)

关键技术&#xff08;读取文件的方法&#xff0c;Split()分割字符串&#xff09; 1.搭建一个这样的场景&#xff0c;场景中有3个文本&#xff08;用新版的&#xff09;&#xff0c;一个空对象&#xff0c;一个按钮 2.编写翻译文本&#xff08;编写一个txt文本&#xff0c;在文…

调用paddleocr实现中文文字识别

文章目录 paddleocr简介paddleocr安装paddleocr使用 paddleocr简介 飞桨首次开源文字识别模型套件PaddleOCR&#xff0c;目标是打造丰富、领先、实用的文本识别模型/工具库。 最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别&#xff1b;支持倾斜、竖排等多种…

VueRouter的介绍:什么是路由呢?VueRouter的作用及使用,VueRouter的使用分为5个步骤和特定的2步

1.什么是路由呢&#xff1f; 路由就是路径和组件之间的映射关系&#xff0c;当我们路径变化的时候&#xff0c;就要切换对应的组件。 在前端中解决路径与组件之间的映射关系&#xff0c;官方提供了VueRouter这个插件 2.VueRouter的作用及使用 作用&#xff1a;修改地址栏路…

三角测量法恢复深度

参考&#xff1a;单目vo中的深度确定方法--三角测量_单目相机三角测量-CSDN博客 方法一&#xff1a;直接法 由于我们已经通过本质矩阵分解或者单应矩阵分解获得了R与t&#xff0c;此时想求的是两个特征点的深度 bool depthFromTriangulation(const SE3& T_search_ref,co…

CSS-文本域和输入框美化处理、文字和图片对齐、文字超出文本域以省略号显示、magin的运用

文本域和输入框美化处理 调整边框和背景&#xff1a; input[type"text"], textarea {border: 1px solid #ccc;border-radius: 5px;background-color: #f9f9f9;padding: 5px; }调整字体和颜色&#xff1a; input[type"text"], textarea {font-family: Ar…

【C语言】扫雷小游戏

文章目录 前言一、游戏玩法二、创建文件test.c文件menu()——打印菜单game()——调用功能函数&#xff0c;游戏的实现main()主函数 game.c文件初始化棋盘打印棋盘随机布置雷的位置统计周围雷的个数展开周围一片没有雷的区域计算已排查位置的个数排查雷(包括检测输赢): game.h文…

ssm034学生请假系统+jsp

学生请假系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

【Gmail】Google OAuth2 发送邮件配置

背景 gmail将全面禁用账号、密码登陆方式&#xff0c;官方相关文档&#xff0c;对于需要调用gmail相关的服务需要做出相应的调整。这里使用Google Cloud应用的形式来接入Gmail&#xff0c;类似的&#xff0c;也可以通过该方式来调用其他的Google Cloud服务。 创建项目及应用 …

Avalonia中开发自己的模版控件(TemplatedControl)

Avalonia中开发自己的模版控件TemplatedControl 概览开始创建自己的模版控件项目中使用效果展示概览 TemplatedControl最适合用于可以在各种应用程序之间共享的通用控件。它们是无样式的控件,意味着可以为不同的主题和应用程序重新定义样式。Avalonia定义的大多数标准控件都属…

OJ 连续数的和 球弹跳高度的计算【C判断是否为完全平方数】【格式输出%g输出全部小数部分】

连续数的和 判断是否为完全平方数有两种方法 1.遍历所有小于该数的整数&#xff0c;有一个满足平方与该数相等&#xff0c;则是完全平方数 2.用sqrt()或pow()函数对该数开方&#xff0c;取整&#xff08;舍去小数部分&#xff09;&#xff0c;再平方&#xff0c;与该数相等则…

Java特性之设计模式【外观模式】

一、外观模式 概述 外观模式&#xff08;Facade Pattern&#xff09;隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式&#xff0c;它向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性 这种模式涉及到一…

雄安建博会:中矿雄安新区的总部开工建设

中矿落位雄安&#xff1a;助力国家战略与新区发展 雄安新区&#xff0c;作为中国未来发展的重要战略支点&#xff0c;正迎来一系列央企总部的疏解与建设。最近&#xff0c;中国矿产资源集团有限公司&#xff08;简称“中矿”&#xff09;在雄安新区的总部项目正式开工建设&…

【C++成长记】C++入门 |auto、范围for、nullptr

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、auto关键字 1、auto简介 2、auto的使用细则 &#xff08;1&#xff09; auto与指针和引用结合起…

Java Swing游戏开发学习23

内容来自RyiSnow视频讲解 这一节讲的是Character Status角色状态或属性。 前言 这一节讲的是实现角色状态或属性的显示&#xff0c;就有点像RPG游戏中&#xff0c;人物属性显示的面板&#xff0c;其中有玩家的装备、玩家的等级&#xff0c;各种防御值、闪避值、跑速什么的。…

基于单片机体温心率检测仪系统设计

**单片机设计介绍&#xff0c; 基于单片机体温心率检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机体温心率检测仪系统设计是一个综合性的项目&#xff0c;旨在通过单片机及其外围电路实现对人体体温和心…