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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • CF B. Kolya and Tandem Repeat

    CF B. Kolya and Tandem Repeat

  • Domino8.5.1策略设定

    Domino8.5.1策略设定

  • wJa丨Java闭源项目的自动化测试「建议收藏」

    wJa丨Java闭源项目的自动化测试「建议收藏」本文是i春秋论坛作家「Wker」表哥分享的技术文章,文章旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。wJa支持反编译Java生成的jar包文件,整理成语法树,根据调用链进行污点分析

  • python游戏代码200行_python做贪吃蛇

    python游戏代码200行_python做贪吃蛇python语言,总所周知是比较简单的,而且代码也不会像java那样多,下面就使用python的第三方库pygame进行开发一个贪吃蛇游戏。1.pygame的安装直接在cmd当中使用pipinstallpygame进行安装。或者在pycharm当中自动导入安装也OK2.全局变量的定义在代码当中会使用到很多这种变量的值,直接在最开始进行定义,后面获取变量即可W=600#屏幕宽H=400#高fps=12#帧率size=(W,H)ROW=

  • Oracle数据库备份与还原

    Oracle数据库备份与还原Oracle数据库备份与还原一、逻辑备份1.某一用户(DBA权限)全库备份:2.某一用户(DBA权限)备份库中某些用户:3.某一用户备份自身:4.某一用户备份自身某些表对象:5.某一用户(具有DBA权限)备份其他用户某些表对象:二、逻辑还原1.使用全库备份文件还原:①使用全库备份文件还原库:②使用全库备份文件还原库内某些用户(被还原用户应存在):③使用全库备份文件还原库内某些用户某些表:2.使用某些用户备份文件还原:①使用某些用户备份文件还原库内某些用户(被还原用户应存在):②使用某些用户备份文件还原库内某

  • 信道带宽_信道和带宽的关系

    信道带宽_信道和带宽的关系信道包括模拟信道和数字信道。在模拟信道,带宽按照公式W=f2-f1计算;数字信道的带宽为信道能够达到的最大数据速率,两者可通过香农定理互相转换。码元:数字信号中每一个符号的通称。即可以用二进制表示,也可以用其它进制的数表示(例如二进制就是0和1表示两个符号,四进制就是0、1、2和3表示四个符号。四进制又可以用二进制表示,00、01、10、11)。码元传输速率,又称为码元速率或传码率。码元…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

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