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;
    }
}
相关推荐
哈里谢顿11 分钟前
agnes0317面试总结
面试
哈里谢顿16 分钟前
golang常见面试题总结
面试·go
AI淇橦学3 小时前
零基础学 Agent :拆解一个 Agent 的「零件清单」——8 个模块逐一讲透 第 2 期
面试
Lee川3 小时前
时空迷宫探险记:从O(1)到O(2^n)的算法进化论
算法·面试
前端Hardy3 小时前
别再手动调 Prompt 了!这款开源神器让 AI 输出质量提升 300%,支持 Claude、GPT、Gemini,还免费开源!
前端·javascript·面试
yuhaiqiang3 小时前
谈谈什么是多AI交叉论证思维
前端·后端·面试
加洛斯3 小时前
JAVA知识梳理:一文搞懂集合中的List与ArrayList的基础与进阶
java·后端·面试
发现一只大呆瓜4 小时前
深度拆解 fetch-event-source库实现原理
前端·javascript·面试
前端Hardy4 小时前
为什么资深前端都在悄悄学 WebAssembly?
前端·javascript·面试
发现一只大呆瓜4 小时前
SSE 流式传输:中断超时处理
前端·javascript·面试