博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法模板——Trie树
阅读量:5987 次
发布时间:2019-06-20

本文共 1383 字,大约阅读时间需要 4 分钟。

实现功能——实现对于不同字符串以及之前出现过的字符串的识别,对于单个长度为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          begin14               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          var20             p:pp;i:longint;21          begin22               p:=head;23               for i:=1 to length(s1) do24                   begin25                        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 then29                  begin30                       inc(ttx);31                       p^.ex:=ttx;32                  end;33               exit(p^.ex);34          end;35 begin36      readln(n);37      head:=getpoint;ttx:=0;38      for i:=1 to n do39          begin40               readln(s1);41               writeln(GETNum(s1));42          end;43      readln;44 end.45

 

转载于:https://www.cnblogs.com/HansBug/p/4240481.html

你可能感兴趣的文章
我的友情链接
查看>>
pupet介绍及安装配置(摘录)
查看>>
我的友情链接
查看>>
maven 在pom.xml设置参数
查看>>
oracle——distinct的用法
查看>>
eclipse快捷键大全
查看>>
RelativeLayout用到的一些重要的属性
查看>>
设置alias永久生效遇到的问题
查看>>
服务器1U 2U
查看>>
Weblogic
查看>>
hypery-v 虚拟机右击无快照问题
查看>>
输入十个数,输出其中最大的一个数
查看>>
日期计算器
查看>>
太极LOGO
查看>>
计算机基础以及python第一个脚本
查看>>
juery实现复选框checkbox全选或者不选
查看>>
df命令、du命令以及磁盘分区
查看>>
think X230i WIN8改win7 无法引导的问题解决
查看>>
tomcat服务器基本配置应用
查看>>
iptables 祥解
查看>>