【Trie】LeetCode 208. 实现 Trie (前缀树)
题目链接
思路
字典树与多叉树非常类似,但是它本身结点不存储值。
什么意思呢?
多叉树结点一般是这样的:
class Tree{
int value;
Tree[] next;
}
而字典树的结点一般是这样的:
class Trie{
boolean isEnd;
Trie[] next = new Trie[26];
}
next
数组实际是一个字母映射表,通过这个表来查找字符。
举个例子,比如说要存储字符串 "lee"
代码
class Trie {
// current node is end node
boolean isEnd;
// Letters mapping table
Trie[] next;
public Trie() {
this.isEnd = false;
this.next = new Trie[26];
}
public void insert(String word) {
Trie node = this;
for(char c : word.toCharArray()){
if(node.next[c - 'a'] == null){
node.next[c - 'a'] = new Trie();
}
node = node.next[c - 'a'];
}
node.isEnd = true;
}
public boolean search(String word) {
Trie node = this;
for(char c : word.toCharArray()){
node = node.next[c - 'a'];
if(node == null){
return false;
}
}
return node.isEnd;
}
public boolean startsWith(String prefix) {
Trie node = this;
for(char c : prefix.toCharArray()){
node = node.next[c - 'a'];
if(node == null){
return false;
}
}
return true;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」