class Trie {
private Trie[] children ;//这个节点的子节点都有什么字符
private boolean isEnd;//这个节点是不是结束字符
public Trie() {
children = new Trie[26];//节点的孩子节点
isEnd = false;//该节点是不是结束字符
}
public void insert(String word){
int len = word.length();//word的长度
Trie node = this;//当前节点
for(int i =0;i < len;i++){
int index = word.charAt(i) - 'a';
if(node.children[index] == null)
node.children[index] = new Trie();
node = node.children[index];
}
node.isEnd = true;
}
public boolean search(String word) {
int len = word.length();
Trie node = this;
for(int i =0; i<len; i++){
int index = word.charAt(i) - 'a';
if(node.children[index] == null)
return false;
node = node.children[index];
}
if(node.isEnd == false)
return false;
else
return true;
}
public boolean startsWith(String prefix) {
int len = prefix.length();
Trie node = this;
for(int i =0; i<len; i++){
int index = prefix.charAt(i) - 'a';
if(node.children[index] == null)
return false;
node = node.children[index];
}
return true;
}
}
08-31
146
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交