208. Implement Trie (Prefix Tree)
Implement a trie with insert
, search
, and startsWith
methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z
.
class TrieNode {
public char val;
public boolean isWord;
public TrieNode[] children;
public TrieNode(char c) {
this.val = c;
this.isWord = false;
this.children = new TrieNode[26];
}
}
public class Trie {
private TrieNode root;
public Trie() {
root = new TrieNode(' ');
}
public void insert(String word) {
TrieNode tn = root;
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (tn.children[c - 'a'] == null)
tn.children[c - 'a'] = new TrieNode(c);
tn = tn.children[c - 'a'];
}
tn.isWord = true;
}
public boolean search(String word) {
TrieNode tn = root;
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (tn.children[c - 'a'] == null)
return false;
tn = tn.children[c - 'a'];
}
return tn.isWord;
}
public boolean startsWith(String prefix) {
TrieNode tn = root;
for(int i = 0; i < prefix.length(); i++) {
char c = prefix.charAt(i);
if (tn.children[c - 'a'] == null)
return false;
tn = tn.children[c - 'a'];
}
return true;
}
}
分类:
leetCode hot 100
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix