208. Implement Trie (Prefix Tree)

Implement a trie with insertsearch, 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;
}
}
posted @   MarkLeeBYR  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示