博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1671 Phone List (字典树)
阅读量:6695 次
发布时间:2019-06-25

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

题目链接 :

分析:字典树题目变种,这里的字典树指的是0--9的变化。基本原理没有大的变化就是字典树查找。

 (1)这道题就是找到这组电话号码中是否有 某个电话号码的前n-1个子串是否由其他的电话号码组成。是就输出NO,否就输出YES.题目大意很简单,字典树时的使用就是套模板,做这种题第一次最好自己写一遍模板,以后自己可以直接使用自己的模板。我的字典树模板见 。

#include 
#include
#include
#include
#define MAXNUM 10using namespace std;//定义字典树typedef struct Trie{ bool flag;//从根到此是否为一个单词 Trie *next[MAXNUM];}Trie;Trie *root;void init(){ root = (Trie *)malloc(sizeof(Trie)); root->flag=false; for(int i=0;i
next[i]=NULL;}void insert(char *word){ Trie *tem = root; while(*word!='\0') { if(tem->next[*word-'0']==NULL) { Trie *cur = (Trie *)malloc(sizeof(Trie)); for(int i=0;i
next[i]=NULL; cur->flag=false; tem->next[*word-'0']=cur; } tem = tem->next[*word-'0']; word++; } tem->flag=true;}bool search(char *word){ Trie *tem = root; for(int i=0;word[i]!='\0';i++) { if(tem==NULL||tem->next[word[i]-'0']==NULL) return 0; tem=tem->next[word[i]-'0']; } return tem->flag;}void del(Trie *cur){ for(int i=0;i
next[i]!=NULL) del(cur->next[i]); } free(cur);}int main(){ int t,n; bool flag; char phone_num[10005][20]; char num[20]; scanf("%d",&t); while(t--) { init(); flag = true; scanf("%d",&n); for(int i=0;i

转载地址:http://nxpoo.baihongyu.com/

你可能感兴趣的文章
系统移植的四大步骤
查看>>
页面加载完毕执行多个JS函数
查看>>
js设置全局变量ajax中赋值
查看>>
Eclipse 控制console
查看>>
C#通过属性名称获取(读取)属性值的方法 z
查看>>
【VBA编程】10.自定义集合
查看>>
SQLServer 维护脚本分享(08)临时数据库(tempdb)
查看>>
ServerSocketChannel API用法
查看>>
Javascript判断object还是list/array的类型(包含javascript的数据类型研究)
查看>>
设计模式(二)模板方法模式
查看>>
闰秒导致MySQL服务器的CPU sys过高
查看>>
网络抓包工具 wireshark 入门教程
查看>>
shell 编程每日100行
查看>>
Sublime Text 3新建工程
查看>>
maven GroupId 和ArtifactId的含义
查看>>
Mac下运行git报错"xcrun: error: invalid active developer path .."
查看>>
基于Dubbo框架构建分布式服务
查看>>
css sprite讲解与使用实例
查看>>
Golang 特性简介
查看>>
ubuntu安装wkhtmltopdf
查看>>