字符串2&Trie 1/3
我一直以为Trie树是用节点存串的...
好吧是用边存串,节点只是用来维护末尾的
不过好像还可以用这些节点维护额外的信息
然后就是说一下插入:
1.新建一个结点
2.将串中的对对应字符映射到对应的边
3.把现在的节点和新建结点通过映射边连起来
一定要在最后维护结束标记
对应的就是删除:
顺序找,找完删,最后删标记
然后就是查找对应的字符串:
顺着字符串找下去看有没有这样的边
没有就false
到串末如果没结束标记也是false
别的就true了
有一类Trie专门研究01串,就叫01Trie
一般通常解决最大异或和问题
最后,Trie树毕竟是数据结构,可以可持久化,也可以维护别的东西
上一个基本操作的板子
点击查看代码
struct Trie{
struct node{
int t[26];
bool end;
}t[5000];
int sum;
void add(char *s){
int v,len=strlen(s),u=0;
for(int i=0;i<len;i++){
v=s[i]-'a';
if(!t[u].t[v]){
t[u].t[v]=++sum;
}
u=t[u].t[v];
}
t[u].end=1;
}
bool find(char *s){
int u=0,v,len=strlen(s);
for(int i=0;i<len;++i){
v=s[i]-'a';
if(!t[u].t[v]){
return false;
}
u=t[u].t[v];
}
if(t[u].end){
return true;
}
return false;
}
}trie;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具