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

算法笔记——字典树

什么是字典树?

    一棵字典树树就像一个小型字典一样,当你拿到一个字想去字典上查的时候(以拼音查法为例),你会先查这个拼音的开头字母,然后在按需查找他下一个字母直到找到相对应的拼音才可以。字典树也是如此,他是按照该字符串的先后顺序而来(他的查找是在每一个层中查找相对应的字符,如果能查到,下一个字符的范围将会缩小在他的子树中查找;没有查到就可退出)。具体看下面例子理解。

对于上述图片是用来寻找“aca”、“ba”相关的例子,只有在找到第一个字母之后才会往下寻找,比如上述图片中寻找“ca”这个字符串就不可能,在第一层中没有字符c,所以直接返回no。

字典树算法板子

这个板子写的时候在查找不到的情况会返回0,而不是no。

int node[100005][30];
int a[100005];
int k;
void in(string s){
	int x=0;
	for(int i=0;i<s.size();i++){
		int y=s[i]-'a';
		if(node[x][y]==0) node[x][y]=++k;
		x=node[x][y];
	}
	a[x]++;
}
int find(string s){
	int x=0;
	for(int i=0;i<s.size();i++){
		int y=s[i]-'a';
		if(!node[x][y]) return 0;
		x=node[x][y];
	}
	return a[x];
}

字典树例题

C-智乃的Notepad(Easy version)_2025牛客寒假算法基础集训营3

相关解析:

牛客训练营(三)补题-CSDN博客

个人感觉:

      此类题目出现的时候,容易理解成栈能解决的题,会有一定思路上的障碍,要合理分析。

相关文章:

  • Leetcode 712. Minimum ASCII Delete Sum for Two Strings
  • 机器学习 - 学习线性模型的重要性
  • 智能交通路线规划:让 AI 帮你躲避拥堵
  • Express 路由路径正则详解
  • Python随笔
  • 大模型炼丹基础--GPU内存计算
  • Redis c++安装使用教程(redis-plus-plus)
  • LabVIEW利用CANopen的Batch SDO写入
  • 乘积最大 之 连续与非联系子数组
  • Linux上Scapy完全指南:从入门到实战攻防
  • 基于SpringBoot实现的大学社团平台系统实现功能六
  • 【16届蓝桥杯寒假刷题营】第2期DAY1I
  • Visionpro 齿轮测量
  • frp与云服务器内网穿透
  • 网上购物|基于SprinBoot+vue的网上购物系统(源码+数据库+文档)
  • 大模型应用开发时如何调试提示词?
  • 深入解析504网关超时错误:服务器通信故障的诊断与解决
  • 每日复盘20250216
  • TensorFlow项目GPU运行 安装步骤
  • ThreadLocal详解
  • 出走的苏敏阿姨一路走到了戛纳,这块红毯因她而多元
  • 下辖各区密集“联手”,南京在下一盘什么样的棋?
  • 北方将现今年首场大范围高温天气,山西河南山东陕西局地可超40℃
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 泽连斯基抵达安卡拉,称乌将派出最高级别代表团参与谈判