gis中char是什么字段_输入一个字符串统计字母个数

gis中char是什么字段_输入一个字符串统计字母个数维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数 N,表示操作数。接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。输出格式对于每个询问指令 Q x,都要输出一个整数作为结果,表示 x 在集合中出现的次数。每个结果占一行。数据范围1≤N≤2∗104输入样例:5I abcQ abcQ ab

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

I x 向集合中插入一个字符串 x;
Q x 询问一个字符串在集合中出现了多少次。
共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。

输入格式
第一行包含整数 N,表示操作数。

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

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

每个结果占一行。

数据范围
1≤N≤2∗104

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

题解
Trie字典树

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int trie[N][26],cnt[N],idx;//下表是0的节点,既是根节点,又是空节点
void insert(char str[]){ 
   
    int p = 0;
    for(int i = 0;i < strlen(str);i ++){ 
   
        int u = str[i] - 'a';
        if(!trie[p][u])trie[p][u] = ++idx;
        p = trie[p][u];
    }
    cnt[p] ++;
}
int query(char str[]){ 
   
    int p = 0;
    for(int i = 0;i < strlen(str);i ++){ 
   
        int u = str[i] - 'a';
        if(trie[p][u] == 0)return 0;
        p = trie[p][u];
    }
    return cnt[p];
}
int main(){ 
   
    int T;
    cin>>T;
    char x;
    char s[N];
    while(T --){ 
   
        cin>>x;
        scanf("%s",s);
        if(x == 'I')insert(s);
        else cout<<query(s)<<endl;
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168837.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 上午11:16
下一篇 2022年8月9日 上午11:16


相关推荐

  • maven+springmvc+mybatis+redis 缓存查询实例,附有源码地址,使用redis注解和hash数据格式set,get两种方式讲解

    maven+springmvc+mybatis+redis 缓存查询实例,附有源码地址,使用redis注解和hash数据格式set,get两种方式讲解maven+springmvc+mybatis+redis 缓存查询实例,附有源码地址,使用redis注解和hash数据格式set,get两种方式讲解

    2022年4月23日
    39
  • Egret介绍

    Egret介绍关于 EgretEgret 引擎是一个开源免费的游戏框架 用于构建二维游戏 演示程序和其他图形界面交互应用等 Egret 使用 TypeScript 脚本语言开发 当游戏完成最终的打包后 可以将程序转换为 HTML5 游戏 实现跨平台特性 Egret 不仅仅是一个基于 HTML5 技术的游戏引擎 我们的产品线中除了 Egret 引擎还提供了很多辅助游戏开发的工具 准确的来说 Egret 是一套游戏开发的解决方案 你可以使用

    2026年3月20日
    2
  • 怎样使用cookie登录自己的账号

    在这之前,不管是做测试还是挖漏洞总会遇到这种问题做测试的时候测试项里面有一个会话标识未更新,这种漏洞说白了就是在退出个人账户的时候没有及时的清除cookie,从而让别人利用你的cookie再次登录你的账户,然后测试的时候客户就让测试如何使用cookie登录在挖漏洞的时候一般xss都需要打cookie然后伪造别人的身份登录,其实也是使用打到的cookie登录在这之前我没深入的理解这块,现…

    2022年4月8日
    82
  • linux异步io底层原理,异步IO简析

    linux异步io底层原理,异步IO简析什么是异步 IO UNIX 网络编程卷 1 中的 IO 多路复章节总结了几种典型 IO 模型 包括 阻塞 IO 非阻塞 IOIO 复用信号驱动式 IO 异步 IO 这些 IO 模型在本质上都是围绕着同步 异步 阻塞 非阻塞这几个特点在做一些不同的选择 IO 的过程是应用程序从某个设备读取数据 或者往设备写入数据 操作系统把这些设备抽象为描述符 fd 应用程序则在这些 fd 上面进行读写操作 由于 fd 的底层是设备 这里就会有个问题 设备还没

    2025年12月12日
    5
  • 关于Asp与Asp.NET共享Cookie需要注意的地方

    关于Asp与Asp.NET共享Cookie需要注意的地方

    2021年7月25日
    58
  • 2026年企业级智能体中台全景评测:五大平台深度对比与选型指南

    2026年企业级智能体中台全景评测:五大平台深度对比与选型指南

    2026年3月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号