public class Trie { public Node root = new Node(' '); public void insert(Node root,String s){ Node temp = root; if(s == null || s.length() == 0){ return ; } for(int i = 0; i < s.length(); i++){ int index = (int)(s.charAt(i) - 'a'); if(temp.list[index] == null){ temp.list[index] = new Node(s.charAt(i)); } temp = temp.list[index]; } temp.b = true; } public boolean isContain(String s){ Node temp = root; for(int i = 0; i < s.length(); i++){ int index = (int)(s.charAt(i) - 'a'); if(temp.list[index] == null){ return false; } temp = temp.list[index]; } return temp.b; } public static void main(String[] args) { // TODO Auto-generated method stub Trie t = new Trie(); t.insert(t.root, "apple"); t.insert(t.root, "cook"); t.insert(t.root, "banana"); System.out.println(t.isContain("cook")); System.out.println(t.isContain("ban")); System.out.println(t.isContain("cooka")); } }
class Node{ char c; boolean b; Node[] list; public Node(char c){ this.c = c; this.b = false; this.list = new Node[26]; } }