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;
    }
}
相关推荐
程序员清风24 分钟前
2026年必学:Vibe Coding几个实用技巧,老手都在偷偷用!
java·后端·面试
Assby1 小时前
深入理解Java:为什么String类要用final修饰?
后端·面试
莫寒清1 小时前
MyBatis 的缓存机制
面试·mybatis
千里马学框架2 小时前
app性能优化:优化布局层次结构
android·面试·性能优化·framework·分屏·布局·小米汽车
菜鸡儿齐2 小时前
leetcode-分割回文串
算法·leetcode·职场和发展
滴滴答滴答答2 小时前
LeetCode Hot100 之 19 接雨水
算法·leetcode·职场和发展
青衫码上行2 小时前
高频SQL 50题 | 聚合
数据库·sql·mysql·leetcode·面试
We་ct2 小时前
浏览器渲染流程(完整+面试背诵版)
前端·面试·职场和发展·edge·edge浏览器