电话号码
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB

描写叙述
给你一些电话号码,请推断它们是否是一致的,即是否有某个电话是还有一个电话的前缀。

比方:

Emergency 911
Alice 97 625 999
Bob 91 12 54 26

在这个样例中。我们不可能拨通Bob的电话,由于Emergency的电话是它的前缀,当拨打Bob的电

话时会先接通Emergency,所以这些电话号码不是一致的。

输入
第一行是一个整数t,1 ≤ t ≤ 40,表示測试数据的数目。
每一个測试例子的第一行是一个整数n。1 ≤ n ≤ 10000,其后n行每行是一个不超过10位的电话号码。

输出
对于每一个測试数据,假设是一致的输出“YES”,假设不是输出“NO”。

例子输入
2
3
911
97625999
91125426
5
113
12340
123440
12345
98346
例子输出
NO
YES

简单trie树。注意两种情况:先插入短串再插入长串和先插入长串再插入短串。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>struct Node{struct Node *next[10];int isCover, isEnd;
};
int ok;void clean(Node *p)
{memset(p->next, 0, sizeof(p->next));p->isCover = p->isEnd = 0;
}void insert(char *str, Node *root)
{Node *p = root;int id;while(*str){id = *str - '0';if(p->next[id] == NULL){p->next[id] = (Node *)malloc(sizeof(Node));clean(p->next[id]);}p = p->next[id];if(p->isEnd) ok = 0;++p->isCover;++str;}if(p->isCover > 1) ok = 0;p->isEnd = 1;
}void DELETE(Node *p)
{for(int i = 0; i < 10; ++i)if(p->next[i]) DELETE(p->next[i]);free(p);
}int main()
{int t, n;char str[12];scanf("%d", &t);while(t--){Node *root = (Node *)malloc(sizeof(Node));scanf("%d", &n);clean(root); ok = 1;while(n--){scanf("%s", str);if(ok) insert(str, root);}printf(ok ?

"YES\n" : "NO\n"); DELETE(root); } return 0; }

电话号码 【trie树】相关推荐

  1. 企业喜欢用容易被记住的电话号码(树解法)

    一个字典树有关问题-电话号码转化有关问题(POJ 1002 487-3279) 转自  http://www.myexception.cn/program/1264292.html 转自  http: ...

  2. Trie树沉思录(1)

    发现自己已经很久没有写解题报告了,很大一部分是因为懒,做完题之后不想再怎样了~不过最近发现写解题报告确实是有好处的,一方面可以复习,一方面可以梳理.还有就是可以给自己的岁月留下一点什么东西~今天是五一 ...

  3. usaco Cowxor (trie 树)

    没想到trie树还可以用在这上面,厉害厉害. [分析]这是字母树的经典应用.首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可. [cpp] view plaincopy for ...

  4. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

    文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...

  5. 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

    文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...

  6. POJ 2418 Hardwood Species(trie 树)

    题目链接 开始想用map的,字典序不会搞,还是老老实实的用trie树把.好久没写了,忘得差不多了. 1 #include <iostream> 2 #include <cstdio& ...

  7. 【bzoj3261】最大异或和 可持久化Trie树

    题目描述 给定一个非负整数序列 {a},初始长度为 N.        有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1. 2.Q l r x: ...

  8. 算法 | 动画+解析,轻松理解「Trie树」

    Trie这个名字取自"retrieval",检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词. 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 ...

  9. 浅谈树形结构的特性和应用(上):多叉树,红黑树,堆,Trie树,B树,B+树......

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 上篇文章我们主要介绍了线性数据结构,本篇233酱带大家看看 无所不 ...

最新文章

  1. PlaneTR:一种用于提取场景中3D平面特征的Transformer(ICCV 2021)
  2. LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法
  3. 别让双手闲下来,来做一些练手项目吧
  4. 1-100之间的奇数
  5. 【转】Win2008 r2 远程桌面授权已过期的解决办法
  6. 八数码问题的暴力求解
  7. ASP.net报错汇总: This application is currently offline.
  8. CSS2.0样式手册_说明_SDK下载chm
  9. 很犀利却很现实的26句话!哪句你心痛了
  10. 富文本编辑器小技巧大杂烩之TinyMce
  11. 计算机基础应用课件,中职计算机应用基础课件
  12. java之继承 封装 多态
  13. win10安装steam有损计算机,Win10专业版修复Steam磁盘写入错误的方法
  14. 老司机推荐企业用什么代理ip好
  15. 郑州大学计算机课程表查询,郑州大学研究生课程表
  16. 【数学建模学习④】飞行管理问题
  17. 企业应该怎么运营微信公众号?
  18. java ajax教程_Jquery ajax基础教程
  19. 高级Magento模型 EAV
  20. 绘画板 java_非常值得学习的java 绘图板源代码

热门文章

  1. 打造RIS服务器 软件在局域网中自动安装
  2. C#的委托事件在winform窗体中实现传值备忘
  3. 再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
  4. 控件测试功能点摘要2
  5. Confluence 6 查看内容索引概要
  6. 深入redis内部--内存管理
  7. Java中的比较总结
  8. Unity 播放音频文件
  9. visudo使用-怎样将mount权限给普通用户
  10. php ? ? ?php ?