208. 實現Trie(字首樹)
阿新 • • 發佈:2021-11-10
import java.util.TreeMap; class Trie { class Node{ boolean isWord; TreeMap<Character, Node> next; public Node(){ next = new TreeMap<>(); isWord = false; } } Node root; int size; public Trie() { root = new Node(); size = 0; } public void insert(String word) { Node cur = root; for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if (cur.next.get(c) == null){ cur.next.put(c, new Node()); } cur = cur.next.get(c); } if (!cur.isWord) { cur.isWord = true; size++; } } public boolean search(String word) { Node cur = root; for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if (cur.next.get(c) == null){ return false; } else { cur = cur.next.get(c); } } return cur.isWord; } public boolean startsWith(String prefix) { Node cur = root; for (int i = 0; i < prefix.length(); i++) { char c =prefix.charAt(i); if (cur.next.get(c) == null){ return false; } else { cur = cur.next.get(c); } } return true; } }
https://leetcode-cn.com/problems/implement-trie-prefix-tree/