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

208. 实现 Trie (前缀树)

208. 实现Trie(前缀树)

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

题目:

题解:

java 复制代码
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;
    }
}
相关推荐
XiYang-DING1 天前
【LeetCode】144. 二叉树的前序遍历
算法·leetcode·职场和发展
小白菜又菜1 天前
Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k
算法·leetcode·职场和发展
不爱吃炸鸡柳1 天前
C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
java·c++·面试
Cosolar1 天前
超越基础 CRUD:LangChain-Chroma 在高并发场景下的架构设计与瓶颈突破
人工智能·后端·面试
程序员清风1 天前
AI编程最佳实践:一个AI写代码,另一个AI查Bug!
java·后端·面试
米粒11 天前
力扣算法刷题 Day 34
算法·leetcode·职场和发展
田梓燊1 天前
leetcode 189
算法·leetcode·职场和发展
星辰_mya1 天前
【无标题】
数据库·后端·面试·架构师
List<String> error_P1 天前
蓝桥杯最后冲刺暴力(二)
职场和发展·蓝桥杯
明灯伴古佛1 天前
面试:Java中乐观锁的实现原理是什么
java·面试·职场和发展