HDU 1671 Phone List (字典树+释放内存)
来源:互联网 发布:mac axure安装教程 编辑:程序博客网 时间:2024/05/15 03:53
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671
题目的意思可能不好理解:
其实他的意思是:给你号码,如果有出现其中的号码是其他号码的前缀,则NO,否则YES。
用字典树储存号码,然后搜索是否有前缀
很明白的一道模板题了,就不多做解释了。
不过值得一提的是,这道题如果没有写上树的释放函数,肯定错。
其实一般字典树的题目都写上这个函数,是不会有问题的。
AC代码如下:
#include<iostream>#include<stdio.h>#include<cstring>using namespace std;typedef struct tree{int num;tree *next[11];tree(){num=0;int i;for(i=0;i<11;i++){ next[i]=NULL;}}}Node;Node *head;void UFset(){int i;head=new Node; //头结点for(i=0;i<11;i++)//26个结点,初始化{head->next[i]=NULL; head->num=0;}}void Tree_insert(char *str){Node *s=head,*t;int len=strlen(str);int i;for(i=0;i<len;i++){int id=str[i]-'0';if(s->next[id]==NULL){t=new Node;s->next[id]=t;}s=s->next[id];s->num++;}}int Tree_Find(char *str){int count;int len=strlen(str);Node *s=head;int i;for(i=0;i<len;i++){int id=str[i]-'0';if(s->next[id]==NULL){count=0;return count;}else{s=s->next[id];count=s->num;}}return count;}void del(Node *head)//!!!释放内存的部分!!!非常重要!!!!{Node *s=head;int i;for(i=0;i<11;++i)if(s->next[i]!=NULL)del(s->next[i]);free(s);}int main(){int ncase;scanf("%d",&ncase);while(ncase--){int n;char number[10010][15];scanf("%d%*c",&n);int i;UFset();for(i=0;i<n;i++){gets(number[i]);Tree_insert(number[i]);}int num=0;for(i=0;i<n;i++){if(Tree_Find(number[i])>1){num=1;break;}elsenum=0;}if(num==1)printf("NO\n");elseprintf("YES\n");del(head);}return 0;}
- HDU 1671 Phone List (字典树+释放内存)
- 再谈字典树:HDOJ 1671 Phone List(内存释放)
- hdu 1671 Phone List(字典树)
- HDU-#1671 Phone List(字典树)
- hdu 1671 phone list(字典树)
- HDU 1671 Phone List(字典树)
- HDU 1671 Phone List(字典树)
- HDU 1671 Phone List(字典树)
- HDU 1671 Phone List(字典树)
- HDU 1671 Phone List (字典树)
- HDU 1671 Phone List(字典树)
- hdu 1671 Phone List(字典树)
- HDU 1671 Phone List (字典树)
- HDU 1671 Phone List(字典树)
- hdu 1671 Phone List(字典树)
- HDU 1671 Phone List(字典树)
- HDOJ 1671 Phone List (字典树+释放空间)
- hdu 1671 Phone List 字典树
- android读取sim卡联系人
- 预处理之单双井号与可变参数
- Oracle00-918:未明确定义列的错误
- 优化网站一定要提升网站的权重
- hibernate关联关系中的一对一以及懒加载的原理:lazy和fetch的理解
- HDU 1671 Phone List (字典树+释放内存)
- java.lang.IllegalStateException
- 删除iframe 光标无法聚焦
- sim卡联系人读取流程
- SEO的六种赚钱方式
- 为什么使用<!DOCTYPE HTML>
- gzip: stdin: not in gzip format .
- 文档在线编辑收集
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例