博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2001 Shortest Prefixes(字典树基础)
阅读量:6582 次
发布时间:2019-06-24

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

题意:给出若干字符串,求每个字符串在所有字符串中唯一的最短前缀;

思路:将所有串插入字典树,对于每个串枚举前缀,查找唯一前缀;

#include
#include
#include
using namespace std;struct node{ int num; node *next[26];};node *head;char str[50005][55];void init(node *h){ for(int i=0;i<26;i++) h->next[i]=NULL; h->num=0;}void h_insert(char s[]){ node *t,*s1=head; int n=strlen(s); for(int i=0;i
next[k]==NULL) { t=new node; init(t); s1->next[k]=t; } s1=s1->next[k]; s1->num++; }}int h_search(char s[]){ int cnt; node *s1=head; int n=strlen(s); for(int i=0;i
next[k]==NULL) return 0; s1=s1->next[k]; cnt=s1->num; } return cnt;}void del(node *h){ for(int i=0;i<26;i++) { if(h->next[i]) del(h->next[i]); } delete(h);}char temp[50005];int main(){ int i,j,k,len,shu=0; head=new node; init(head); while(scanf("%s",str[shu])!=EOF) { h_insert(str[shu]); shu++; } for(i=0;i

 

转载于:https://www.cnblogs.com/dashuzhilin/p/4502547.html

你可能感兴趣的文章
3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令
查看>>
关于css的水平,垂直居中
查看>>
修改(切换)当前数据库的UNDO表空间
查看>>
使用VM Tools让VMware虚拟机里的ubuntu能够共享Windows系统的文件夹
查看>>
怎样实现短信验证功能
查看>>
【2018.06.11学习笔记】【linux高级知识 12.13-12.16】
查看>>
阿里云宣布进入 Serverless 容器时代,推出弹性容器实例服务 ECI
查看>>
接收三个班级的各四名学员的成绩信息,然后计算每个班级学员的平均分
查看>>
分布式服务框架之远程通讯技术及原理分析
查看>>
思维导图XMind 8 Pro 绿化方法(附序列号)
查看>>
Redis
查看>>
离线安装cmake
查看>>
怎样使用主流缓存更新策略来减少性能消耗?
查看>>
转型架构师必读:实用架构的搭建思路
查看>>
1.8 字典 1.9 字典练习 2.0/2.1 流程控制-if条件判断
查看>>
Java字符串类型
查看>>
Ubuntu 下 JDK和Tomcat安装
查看>>
jquery-jmodal-显示对话框
查看>>
Spark任务上传
查看>>
nginx做反向代理时出现302错误
查看>>