public class Trie {
private Node1 root;
public Trie() {
root = new Node1();
}
public void insert(String word) {
if(word==null)return;
char[] chs = word.toCharArray();
Node1 node = root;
node.pass++;
for (char ch : chs) {
int index = ch - 'a';
if (node.nexts[index] == null) {
node.nexts[index] = new Node1();
}
node = node.nexts[index];
node.pass++;
}
node.end++;
}
public boolean search(String word) {
Node1 node = root;
char[] chs = word.toCharArray();
for (char ch : chs) {
int index = ch - 'a';
if (node.nexts[index] == null) return false;
node = node.nexts[index];
}
return node.end >= 1;
}
public boolean startsWith(String prefix) {
Node1 node = root;
char[] chs = prefix.toCharArray();
for (char ch : chs) {
int index = ch - 'a';
if (node.nexts[index] == null) return false;
node = node.nexts[index];
}
return true;
}
}
class Node1{
public int pass;
public int end;
public Node1[] nexts;
public Node1() {
pass = 0;
end = 0;
nexts = new Node1[26];
}
}
力扣208.实现前缀树(重要)
最新推荐文章于 2021-12-15 13:07:50 发布