来 看 T r i e 吧

Trie 念做 try,就是字典树。
是一种主要用于字符串快速检索的多叉树结构


可以做什么呢,比如你输入了一大堆已有的字符串,可以很快判断一个新的给定的字符串是否在已有的字符串里出现过

const SIZE = 1e4+5;
bool end[SIZE]
int tire[SIZE][26], tot = 1; //假设只有小写字母 void insert(char s[]){int L = (int)strlen(s),p = 1;for(int k=0;k<L;k++){int ch = s[k] - 'a';if(tire[p][ch] == 0) trie[p][ch] = ++tot;  // tire[p][ch] == 0 表示没有出现过这个字符串// 对于一个确定的字符串前缀,有唯一对应的数字tot,若没有出现这样的前缀,那么++totp = trie[p][ch];}end[p] = 1;//标记下这个字符串的结尾
}bool search(char s[]){int L = (int)strlen(s),p=1;for(int k=0;k<L;k++){p = trie[p][s[k] - 'a'];if(p == 0) return false;    }return end[p];
}

我觉得嘛,
首先, 数字 p 有对应的唯一字符串
那么,这个 trie[p][ch] 可以理解成:
以p为前缀的字符串,加上ch以后的对应的数字。

所以就很好理解了嘛
insert的时候,如果不存在这样的p,那么就立刻++tot,这时p就存在了。
search的时候,如果不存在这样的p,那么就是找不到,返回false。

这个字典树有什么用呢?
比如说,可以根据前缀预测出后面可能的字符,因为对于一个p来说,他可能的后缀是可以找到的。像什么 搜索 就可以通过这种方式建立索引。

来 看 T r i e 吧相关推荐

  1. R语言学习笔记-机器学习1-3章

    在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书 ...

  2. UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资

    UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资 基础回归分析 571A另一个系列的文章介绍了回归分析的理论,这个系列的文章介绍R语言做回归分析的实践,但不会涉及R语言编程,只 ...

  3. python做数据分析难么_做统计学习,数据分析应该学Python还是R?

    如果你是数据分析领域的新兵,那么你一定很难抉择--在进行数据分析时,到底应该使用哪个语言,R还是Python?在网络上,也经常出现诸如"我想学习机器语言,我应该用哪个编程语言"或者 ...

  4. R语言forestmodel包使用教程

    看下R包介绍,这个包可以基于回归模型的结果绘制森林图,这个回归结果包括逻辑回归和Cox回归模型. 下面来学习下这个包. 1. 安装和加载R包 安装R包可以直接从CRAN上安装. install.pac ...

  5. R︱并行计算以及提高运算效率的方式(parallel包、clusterExport函数、SupR包简介)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 终于开始攻克并行这一块了,有点小兴 ...

  6. R语言︱ 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 数据库是极其重要的R语言数据导入源 ...

  7. R语言入门——常用函数50个

    R语言函数入门50个基本函数 0引言 1.入门准备操作及函数 1.1R版本介绍以及IDE的选择 1.2IDE及其常用的快捷键 2.空间操作以及纠错函数 2.1 ? .??.help.demo.exam ...

  8. Python与R的区别与联系

    中文原文:数据科学界华山论剑:R与Python巅峰对决 英文原文:Choosing R or Python for data analysis? An infographic 如果你是数据分析领域的新 ...

  9. R语言基础之第六部分 分类(史上最全含ddply、aggregate、split、by)

    R语言基础之第六部分 分类(史上最全含ddply.aggregate.split.by) 数据: 某市2014年-2018年空气质量指数日数据,需要按年分类计算每年 warm值为1和 0的均值. 数据 ...

  10. [R] R语言for循环机制

    在做数据分段截取的时候,发现for循环的表现和其他语言不太一样. 上代码: for( i in 1:4) {i = i + 1print(i) } 结果: [1] 2 [1] 3 [1] 4 [1] ...

最新文章

  1. 如果现在只能用汇编和 Goto 编程......
  2. 做有挑战的事情就行了~
  3. MySQL 使用 OR 条件导致索引失效
  4. C#微信公众号开发系列教程三(消息体签名及加解密)
  5. hadoop遇到的问题及处理
  6. ansys怎么建立弯曲圆柱_螺栓连接模型的建立方法解析
  7. (二)使用预定义模型 QStringListModel例子
  8. 区块链,到底是美好未来还是题材炒作?
  9. of python检索文献 science web_查SCI文献,不知道检索方法怎么行!
  10. Chrome忽略网站证书错误
  11. 土木工程结构力学————钢架的位移法
  12. 电子器件——钽电容的简介
  13. oracle备份数据脚本,oracle数据库自动备份脚本
  14. 【工作技能】如何制作有效的简历
  15. SpringMVC学习系列(6) 之 数据验证
  16. 知乎高赞:什么能力很重要,但大多数人都没有?
  17. 遗传算法五大基本要素——参数编码、群体设定
  18. 【三角函数】常用的三角函数相关知识
  19. 文件传输服务(FTP)
  20. 基于SnowNLP的商品评论文本情感分析

热门文章

  1. 2021年高压电工考试技巧及高压电工模拟考试
  2. 文章瞎读 TOLDI: An effective and robust approach for 3D local shape description 2016
  3. A Game of Thrones(99)
  4. sqlite3_exec返回SQLITE_MISUSE(21)
  5. 沟通的艺术与处世智慧 ——戴尔卡耐基(笔记)
  6. Android 实现adb手机投屏
  7. 单片机延时问题20问
  8. 查看微信好友男女比例
  9. ddd linux 调试工具_linux-c/c++调试利器gdb、ddd小试
  10. [ XJTUSE ]JAVA语言基础知识——7.11 JTree、TreeModel实现树