算法模板——Trie树
时间:2022-05-07
本文章向大家介绍算法模板——Trie树,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
实现功能——实现对于不同字符串以及之前出现过的字符串的识别,对于单个长度为L的字符串,复杂度为O(L);
代码不难懂,直接上(在识别字符串方面,个人觉得其好处远远大于hash识别——1.理论上都是O(L) 2.哈希弄不好撞车撞一大串,尤其是哈希策略不太好的时候,而这个绝对不可能撞,严格的O(L) 3.这个代码真心短,一点也不比hash长,只要你链表还会用)
1 type
2 pp=^nod;
3 nod=record
4 ex:longint;
5 next:array[char] of pp;
6 end;
7 var
8 i,j,k,l,m,n,ttx:longint;
9 head,p,p1,p2:pp;
10 s1:ansistring;
11 function getpoint:pp;inline;
12 var p:pp;c1:char;
13 begin
14 new(p);p^.ex:=0;
15 for c1:=chr(0) to chr(255) do p^.next[c1]:=nil;
16 exit(p);
17 end;
18 function getnum(s1:ansistring):longint;
19 var
20 p:pp;i:longint;
21 begin
22 p:=head;
23 for i:=1 to length(s1) do
24 begin
25 if p^.next[s1[i]]=nil then p^.next[s1[i]]:=getpoint;
26 p:=p^.next[s1[i]];
27 end;
28 if p^.ex=0 then
29 begin
30 inc(ttx);
31 p^.ex:=ttx;
32 end;
33 exit(p^.ex);
34 end;
35 begin
36 readln(n);
37 head:=getpoint;ttx:=0;
38 for i:=1 to n do
39 begin
40 readln(s1);
41 writeln(GETNum(s1));
42 end;
43 readln;
44 end.
45
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一个真实问题,搞定三个冷门pandas函数
- conda管理C源代码程序的时候总是出现库文件冲突或者缺失
- 如何获取非模式生物KEGG PATHWAY的基因集并用clusterProfile做GSEA?
- 通过视频着色进行自监督跟踪
- Python爬虫:一些常用的爬虫技巧总结
- 带你用 Python 实现自动化群控(入门篇)
- Chrome终于上线这项重磅功能,中国用户苦等多年!
- YOLO 算法最全综述:从 YOLOv1 到 YOLOv5
- 《JavaScript ES6 函数式编程入门经典》读书笔记
- Java9-Reactive Stream API响应式编程
- mybatis-plus增删改查以及前后端分离模式下的项目应用
- docker(常用软件安装)
- PyTorch版:集成注意力和MobileNet的YOLOv4
- 从源代码级别看懂MinIO对象存储网关的实现
- 4种主流超参数调优技术