当前位置: 首页 > news >正文

Trie字符串统计(Trie树)

Trie树

Trie:用来高效存储和查找的字符串集合,从根节点开始依次存储字符串的各个字符, 并在最后一个字符中做出标记表示 以此结束是一个字符串。

image

例题

image

测试样例

5
I abc
Q abc
Q ab
I ab
Q ab

预期输出:

1
0
1

代码实现

#include<bits/stdc++.h>
using namespace std;
​
const int N =1e5+10;
​
int son[N][26];//题目只存储小写字母,故一个结点最多有26个边
int cnt[N] ,idx;//cnt[]存储某个节点的标记,表示有多少个以此结尾。idx表示当前下标
char str[N];//每次输入的字符;
​
void insert(char str[]){int p=0;for(int i=0;i<strlen(str);i++){int u =str[i]-'a';if(!son[p][u]) son[p][u]= ++idx; //这里的P指的是第几个节点,按插入顺序确定的,u表示的是这个节点存储的字符。p=son[p][u];}cnt[p] ++; //循环结束时p表示的节点就是一个字符完成的节点。
}
​
int query(char str[]){int p=0;for(int i=0;i<strlen(str);i++){int u= str[i] - 'a';if(!son[p][u]) return 0;p=son[p][u];}return cnt[p];
}
​
int main()
{int n;cin>>n;while(n--){char op[2];scanf("%s%s",op,str);if(op[0]== 'I') insert(str);else cout<<query(str)<<endl;}
}
​

  

 
http://www.sczhlp.com/news/75723/

相关文章:

  • 为什么找不到 javax.annotation.Resource了?
  • 网站开发主要用到哪些工具wp网站如何做文件的付费下载
  • 江宁区建设工程质量监督站网站杭州网络公司有哪些
  • 天河区建设网站珠海网站建设 amp 超凡科技
  • 芜湖网站建设怎么做百度app平台
  • 网站建设1000元合适的网站建设明细报价表
  • 网站建设从哪几个情况去判2024年个体工商户年报怎么填
  • 泗水做网站wordpress登录注册小工具
  • 长沙做网站建设公司排名做盗版视频网站成本多少钱
  • 语音AI教育工具推动学生编程学习
  • 故障分析:常见坏块分类,dbv报错代码:6107
  • 虚树总结
  • 佛山北京网站建设建筑材料网
  • 做精酿啤酒购买的网站wordpress相册展示插件
  • 一个网站的建设需要哪些流程新颖的网站策划
  • 做英文网站赚钱广告创意设计公司
  • Linux 使用pip报错(error: externally-managed-environment )解决方案
  • 读书笔记:Oracle临时表全解析:会话私有的数据暂存区
  • 集团网站 wordpresswordpress 免密码破解
  • 如何做一个网站赚钱域名购买后如何建设网站
  • discuz做服务网站怎么注册网站域名备案
  • 网站开发公司的推广费用织梦如何做淘宝客网站
  • 厦门做企业网站比较好的公司wordpress导入项目
  • 河南建设监理协会网站6mx主题wordpress
  • 住建部禾建设部是一个网站吗亿网科技有限公司
  • 怎么做网站盈利网站换vps
  • 一家做运动鞋的网站好做游戏都需要什么网站吗
  • arcmap中为镶嵌数据集build overview报错Error:8004206f 解决办法
  • [After 笔记]哈希算法
  • Surface电脑在装Linux系统后频繁断网问题解决方案