暑假- Trie树-(D - Phone List)
来源:互联网 发布:蒙泰打印机端口在哪里 编辑:程序博客网 时间:2024/06/08 09:27
/*题意:给你一堆电话号码,如果没有任何一个人的电话号码是其他的电话号码的前缀,则输出“YES”,否则输出“NO”。思路:trie树,是不是其他号码的前缀只要判断最后一个数字出现的次数,若只出现一次则这个号码不会是其他号码的前缀,否则是其他号码的前缀。*/#include<iostream>#include<cstring>using namespace std;const int MAXM=100005;struct Node{int value;Node *child[26];Node(){value=0;memset(child,NULL,sizeof(child));}}*root;char num[MAXM][15];//保存号码bool temp;//判断是否出现前缀号码void create(char s[])//建树{Node *x=root;for(int i=0;i<strlen(s);i++){int d=s[i]-'0';if(x->child[d]==NULL){x->child[d]=new Node;}x=x->child[d];}x->value++;//最后一个数字的value++}void Search(char s[])//判断{Node *x=root;int len=strlen(s);for(int i=0;i<len;i++)//循环出来后,X即为最后一个数码的节点。{int d=s[i]-'0';x=x->child[d];}if(x->value!=1)//若出现不止一次。{temp=false;}}void DeleteNode(Node *x)//删除之前节点的信息{if(x==NULL){return;}for(int i=0;i<26;i++){if(x->child[i]!=NULL){DeleteNode(x->child[i]);}}delete x;}int main(){int t,n;cin>>t;while(t--){temp=true;cin>>n;root = new Node;for(int i=0;i<n;i++){cin>>num[i];create(num[i]);}for(int j=0;j<n;j++){Search(num[j]);if(temp==false)//只要出现一个前缀字符,其他就不用判断了{break;}}if(temp){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}DeleteNode(root);}return 0;}
0 0
- 暑假- Trie树-(D - Phone List)
- Phone List(trie树)
- Sicily 1426 Phone List(Trie树)
- POJ 3630 Phone List 【Trie树入门】
- ZOJ 2876 Phone List(trie树)
- hdu 1671 Phone List (Trie树,水题)
- hdu 1671 Phone List trie树
- Phone List(poj3630,简单trie树)
- Trie树入门题目--HDU1671 Phone List
- 1671 Phone List (Trie树)
- HDU 1671 Phone List(字典树Trie)
- POJ 3630 - Phone List (Trie树)
- HDU 1671 Phone List Trie树
- Phone List - HDU 1671 Trie树
- hdu1671 Phone List (trie树)
- HDU 1671 Phone List(字典树Trie)
- HDOJ-1671Phone List(Trie树)
- hdu-1671-Phone List Trie树
- c++中sort()及qsort()的用法总结
- SDNU 1168.FBI树【NOIP 2004 普及组】【不建树】【7月28】
- android ListView 几个重要属性和使用小技巧
- ionic的tabs学习
- UVA 10061 How many zeros and how many digits?
- 暑假- Trie树-(D - Phone List)
- 网络编程系列之二 互斥量
- hdu 2734(Quicksum)
- 三星通话记录数据库存放地址
- sublime text 3 快捷键大全以及配置编译环境
- 捋捋所遇见的WdatePicker插件的用法
- Apache Shiro 使用手册(四)Realm 实现
- hdoj 2043密码
- Linux网络编程select模型的实现