Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >js实现trie树

js实现trie树

作者头像
theanarkh
发布于 2019-03-06 02:05:49
发布于 2019-03-06 02:05:49
2.9K00
代码可运行
举报
文章被收录于专栏:原创分享原创分享
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function Node(options) {
    options = options || {};
    this.val = options.val;
    this.isCapital = null;
    this.position = options.position;
}

function position(str) {
    var code = str.charCodeAt(0);
    if (code >= 65 && code <= 97) {
        return {
            isCapital: false,
            position: code
        };
    } else if (code >= 97 && code <= 122) {
        return {
            isCapital: true,
            position: code
        };
    }
}
function makeTree(arr) {
    var i = 0;
    var j = 0;
    var root = new Node();
    var currentNode = root;
    while(i < arr.length) {
        var str = arr[i];
        while(j < str.length) {
            var info = position(str[j]);
            info.val = str[j];
            if (!currentNode[info.position]) {
                var node = new Node(info);
                currentNode[info.position] = node;
            }

            currentNode = currentNode[info.position];
            j++;
        }
        currentNode.isEnd= true;
        currentNode = root;
        i++;
        j = 0;
    }
    return root;
}

var str = ['hello', 'hel'];
function start() {
     root = makeTree(str);
}
start()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程杂技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端面试中的常见的算法问题
作者:Jack Pu 链接:www.jackpu.com/qian-duan-mian-shi-zhong-de-chang-jian-de-suan-fa-wen-ti/ 虽说我们很多时候前端很少有机会接触到算法。大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。 Q1 判断一个单词是否是回文? 回文
智能算法
2018/04/02
1.4K0
前端面试中的常见的算法问题
LeetCode HOT 100 之总结记录
此时就需要分情况讨论,中心为1个数还是2个,即回文串为奇数还是偶数;若当前访问字符满足回文串条件(在s中且相同),则继续向外扩散,直到不满足条件
xinxin-l
2022/03/29
4160
【总结】56个JavaScript 实用工具函数助你提升开发效率!
https://juejin.cn/post/7019090370814279693
pingan8787
2021/11/08
9490
【总结】56个JavaScript 实用工具函数助你提升开发效率!
前端面试中的常见的算法问题
虽说我们很多时候前端很少有机会接触到算法。大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。 Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。比如 mamam redivider . 很多人拿到这样的题目非常容易想到用for
前朝楚水
2018/04/03
6860
前端面试中的常见的算法问题
Trie Tree 实现中文分词器
前言 继上一篇HashMap实现中文分词器后,对Trie Tree的好奇,又使用Trie Tree实现了下中文分词器。效率比HashMap实现的分词器更高。 Trie Tree 简介 Trie Tree,又称单词字典树、查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 性质 它有3个基本性质: 根节点不包含字符,除根节点外每一个节点都只包含一个字符。
java404
2018/05/18
1.5K0
从Vue.js源码中我学到的几个实用函数
如果想看Vuejs源码,不知道如何下手,一般推荐配置Sourcemap,针对单个问题调试来看,如何调试Vuejs源码,我的vuex源码文章中写了。
若川
2021/04/23
2.5K0
从Vue.js源码中我学到的几个实用函数
JS实用技巧手记之八
除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/programming/157.html
慕白
2018/08/03
4810
二叉树常见面试题
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
河马嘴不大
2022/12/24
2140
Vue0.11版本源码阅读系列四:详解指令值解析函数
首先该版本的vue指令值支持一下几种类型以及通过dirParser.parse要返回的数据:
街角小林
2022/03/21
4970
Vue0.11版本源码阅读系列四:详解指令值解析函数
用Js怒刷LeetCode
针对有一定数据结构基础(了解链表, 二叉树, 二叉堆, 递归)的基本概念,并对时间空间复杂度有基本认知的。
hellocoder2028
2022/10/27
2.2K0
frida框架hook常用字符串转换模板总结
ArrayBuffer转String: 解决中文乱码(模板) function ab2str(buf) { return new Uint16Array(buf) // encodedString = String.fromCodePoint.apply(null, new Uint16Array(buf)); // // decodedString = encodeURI(encodedString);//没有这一步中文会乱码 // // console.log(decod
小小咸鱼YwY
2020/07/31
3K0
剑指 offer -JavaScript 版(第3期23-32题)
21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
前端迷
2019/12/19
3020
js手写面试题总结
使用时间戳的节流函数会在第一次触发事件时立即执行,以后每过 wait 秒之后才执行一次,并且最后一次触发事件不会被执行
helloworld1024
2022/12/16
6160
JavaScript基础学习--13字符串、查找高亮显示
Demos:   https://github.com/jiangheyan/JavaScriptBase 一、字符串      1、str.length;     //获取字符串长度      2、str.chartAt(n);     //获取字符串中指定下标(n)的字符,默认第0个,找不到返回空      3、str.charCodeAt(n);     //获取字符串中指定下标(n)转码后的ascll码     数字0~9【对应ascll码:48~57】     a~z【对应ascll码:97~1
用户1148399
2018/01/09
1K0
100个常用的 JS 代码片段分享,值得你收藏
function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break } } return strre + "..." }
前端达人
2021/10/08
2.4K0
Trie树实现自动补全功能
Trie树,也叫字典树,又称单词查找树,是一种树形结构, 是一种哈希树的变种。典型应用是用于统计, 排序和保存大量的字符串(但不仅限于字符串), 所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间, 最大限度地减少无谓的字符串比较,查询效率比哈希树高
每天学Java
2020/06/01
1.4K0
做了一份前端面试复习计划
以下是代码实现,实现了思路,但是可能会存在 Bug,但是这种设计题一般是给出设计思路和部分代码,不会需要写出一个无问题的代码
loveX001
2022/12/08
3700
百度前端一面常见手写面试题(持续更新中)
方法有很多种,这里提供一种比较简洁的写法,用到了ES10的Object.fromEntries():
helloworld1024
2022/09/24
4050
大佬日常必备的JS工具函数大全
前面我们分享过一篇:前端常用的60多种JavaScript工具方法,很多人觉得有用,今天再分享一篇类似的东西,如果文章和笔记能带您一丝帮助或者启发,请不要吝啬你的赞和收藏,你的肯定是我前进的最大动力
前端开发博客
2020/11/04
1.5K0
js工具函数大全 || 实用篇
“ 关注 前端开发社区 ,回复 '领取资源',免费领取Vue,小程序,Node Js,前端开发用的插件以及面试视频等学习资料,让我们一起学习,一起进步
前端老道
2020/05/29
4.7K0
js工具函数大全 || 实用篇
相关推荐
前端面试中的常见的算法问题
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验