image.png
    image.png

    1. class Trie {
    2. Trie[] chileren;
    3. boolean isExist;
    4. public Trie() {
    5. chileren = new Trie[26];
    6. isExist = false;
    7. }
    8. public void insert(String word) {
    9. Trie node = this;
    10. for(int i=0;i<word.length();i++){
    11. char c = word.charAt(i);
    12. int index = c - 'a';
    13. if(node.chileren[index] == null){
    14. node.chileren[index] = new Trie();
    15. }
    16. node = node.chileren[index];
    17. }
    18. node.isExist = true;
    19. }
    20. public boolean search(String word) {
    21. Trie node = searchWorld(word);
    22. return node!=null && node.isExist;
    23. }
    24. public boolean startsWith(String prefix) {
    25. return searchWorld(prefix)!=null;
    26. }
    27. private Trie searchWorld(String str){
    28. Trie node = this;
    29. for(int i=0;i<str.length();i++){
    30. char c = str.charAt(i);
    31. int index = c-'a';
    32. if(node.chileren[index]==null){
    33. return null;
    34. }
    35. node = node.chileren[index];
    36. }
    37. return node;
    38. }
    39. }