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;
    }
}
相关推荐
Cosolar1 天前
LlamaIndex 文档解析与分块策略深度解析
人工智能·面试·架构
kyriewen1 天前
我读了一遍 Babel 编译后的 async/await,终于搞懂了它的原理(附 20 行手写实现)
前端·javascript·面试
小欣加油1 天前
leetcode2574 左右元素和的差值
数据结构·c++·算法·leetcode·职场和发展
zzz_23681 天前
【RabbitMQ】面试系列 · 第三期:从线上故障到架构选型
面试·架构·rabbitmq
user73263921004781 天前
借助AI再次理解三次握手和四次挥手
网络协议·面试
千寻girling1 天前
一周没跑步了 ,今日跑步 5KM , 哑铃+健身 20min , 俯卧撑 30 个 ;
数据结构·c++·python·算法·leetcode·职场和发展·线性回归
zzz_23682 天前
【Spring】面试突击系列(六):Spring 工程实践与面试综合
java·spring·面试
牛油果子哥q2 天前
【C++ this指针】C++ this指针深度精讲:this底层本质、存储位置、调用机制、const this指针、空指针调用、面试坑点与工程实战
开发语言·c++·面试
用户47949283569152 天前
盛大集团面经(专升本毕业 9 个月,99%代码靠 AI 写)
面试
Elias不吃糖2 天前
AI Resume Forge:基于 LangGraph 的 AI 简历优化与模拟面试平台
java·人工智能·面试·agent开发