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

trie树的一点理解

这个是最简单的数据结构:因为只需要记住两句话就能完美的写出简洁优雅的代码
1. 每次都是从根节点开始看(或者说从第零次插入的东西开始遍历,son[][]里面存的是第几次插入)
2每次遍历都是插入和查询的字符串

#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int son[N][26];
int idx;
int cnt[N];
char str[N];
void insert(char ch[]){int p = 0;for(int i = 0;ch[i];i ++){int u = ch[i] - 'a';if(!son[p][u])son[p][u] = ++ idx;p = son[p][u];}cnt[p] ++;
}int query(char ch[]){int p = 0;for(int i = 0;ch[i];i ++){int u = ch[i] - 'a';if(!son[p][u])return 0;p = son[p][u];} return cnt[p];
}
int main(){int n;cin >> n;while(n --){char ch[2];scanf("%s%s",ch,str);if( * ch == 'I') insert(str);else cout << query(str) << endl;}
}
http://www.lryc.cn/news/96555.html

相关文章:

  • Linux CentOS监控系统的运行情况工具 - top/htop/glances/sar/nmon
  • Qt开发(2)——windows下调用外部程序
  • PostgreSQL查看数据库对象大小
  • 给el-table实现列显隐
  • 为Android构建现代应用——应用架构
  • 49:字符串的新增方法
  • Kaggle图表内容识别大赛TOP方案汇总
  • DAY2,Qt(继续完善登录框,信号与槽的使用 )
  • 【设计模式】设计原则-开闭原则
  • 【2500. 删除每行中的最大值】
  • Superset部署
  • Python3 学习笔记 ~ 怎样打印字符串
  • postgresql安装
  • ElasticSearch之IK分词器安装以及使用介绍
  • Linux系统安装部署Jenkins详细教程(图文讲解)
  • 基于ChatGPT聊天的零样本信息提取7.25
  • Pytorch个人学习记录总结 08
  • Ansible自动化运维学习——综合练习
  • Java中正则表达式
  • 13 硬链接和软链接
  • 智能合约安全审计
  • 矩阵置零(力扣)思维 JAVA
  • centos制作openssh 9.3p2 rpm包
  • uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)
  • 全志F1C200S嵌入式驱动开发(调整cpu频率和dram频率)
  • idea 设置了 vm options后无法启动
  • TPS54620RHLR是一款同步降压转换器
  • 主机漏洞利用演示MS17-010(永恒之蓝)
  • 2023年第六届河北省研究生数学建模竞赛题目B题Python求解代码
  • 【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念