ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

day74(2.2)——leetcode面试经典150

day74(2.2)——leetcode面试经典150

208. 实现 Trie (前缀树)

208. 实现Trie(前缀树)

又是一个自己建类去实现 但是真的挺神奇的

题目:

题解:

class TrieNode { Map<Character, TrieNode> children = new HashMap<>(); boolean isEnd = false; // 标记是否为完整单词 } class Trie { private TrieNode root; public Trie() { root = new TrieNode(); } public void insert(String word) { TrieNode node = root; for (char c : word.toCharArray()) { node.children.putIfAbsent(c, new TrieNode()); node = node.children.get(c); } node.isEnd = true; // 标记结束 } public boolean search(String word) { TrieNode node = find(word); return node != null && node.isEnd; // 必须是完整单词 } public boolean startsWith(String prefix) { return find(prefix) != null; // 只要前缀存在即可 } private TrieNode find(String prefix) { TrieNode node = root; for (char c : prefix.toCharArray()) { if (!node.children.containsKey(c)) { return null; } node = node.children.get(c); } return node; } }
返回列表