算法笔记——字典树
- 其他
- 2025-09-09 14:33:02

什么是字典树?
一棵字典树树就像一个小型字典一样,当你拿到一个字想去字典上查的时候(以拼音查法为例),你会先查这个拼音的开头字母,然后在按需查找他下一个字母直到找到相对应的拼音才可以。字典树也是如此,他是按照该字符串的先后顺序而来(他的查找是在每一个层中查找相对应的字符,如果能查到,下一个字符的范围将会缩小在他的子树中查找;没有查到就可退出)。具体看下面例子理解。
对于上述图片是用来寻找“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博客
个人感觉:
此类题目出现的时候,容易理解成栈能解决的题,会有一定思路上的障碍,要合理分析。
上一篇
腿足机器人之八-腿足机器人动力学
下一篇
机器学习-学习线性模型的重要性