public class Main {
public static void main(String[] args){
String word = "jiabai";
Trie root = new Trie();
root.insert("jiabai");
root.insert("jijijisda");
System.out.println(root.search("xiaojiji"));
System.out.println(root.search("jiabaii"));
}
}
import java.util.HashMap;
public class Trie {
TrieNode root;
class TrieNode {
HashMap<Character, TrieNode> next;
private boolean isEnd;
TrieNode(){
next = new HashMap<>();
}
}
Trie(){
root = new TrieNode();
}
void insert(String word){
TrieNode node = root;
char[] c = word.toCharArray();
for(int i=0;i<c.length;i++){
if(node.next.containsKey(c[i])){
node = node.next.get(c[i]);
}
else{
node = node.next.put(c[i],new TrieNode());
node = node.next.get(c[i]);
}
}
node.isEnd = true;
}
boolean search(String word){
TrieNode node = root;
char[] c = word.toCharArray();
for(int i=0;i<c.length;i++){
if(node.next.containsKey(c[i])){
node = node.next.get(c[i]);
}
else{
return false;
}
}
if(node.isEnd)
return true;
return false;
}
}
这里是Hashmap版的字典树