力扣每日一题:208. 实现 Trie (前缀树)

挺简单的,主要是缕清分支return search的关系。判断一个单词是否存在即search方法去查找树中有无这棵子树,并且检查是不是最后一个节点,prefix不用检查
在这里插入图片描述

1.前缀树的创建

(1)初始化

var Trie = function() {
    this.children={}
};

(2)插入

Trie.prototype.insert = function(word) {

    let letter=this.children
    for(const char of word){
        if(!letter[char]){
            letter[char]={}
        }
        letter=letter[char]
    }
    letter.isEnd=true
};

2.search方法

Trie.prototype.search = function(word) {

    let letter=this.children
    for(const char of word){
        if(letter[char]){
            letter=letter[char]
        }else return false
    }
    if(letter.isEnd===true){
        return true
    }
    return false
};

3.查找前缀

Trie.prototype.startsWith = function(prefix) {

    let letter=this.children
    for(const char of prefix){
        if(letter[char]){
            letter=letter[char]
        }
        else{return false}
    }
    return true
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值