南阳理工ACM 162 Phone List
来源:互联网 发布:新浪股票财经数据接口 编辑:程序博客网 时间:2024/06/04 19:07
Phone List
时间限制:1000 ms | 内存限制:65535 KB
难度:4
- 描述
Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone catalogue listed these numbers:
- Emergency 911
- Alice 97 625 999
- Bob 91 12 54 26
In this case, it's not possible to call Bob, because the central would direct your call to the emergency line as soon as you had dialled the first three digits of Bob's phone number. So this list would not be consistent.
- 输入
- The first line of input gives a single integer, 1 ≤ t ≤ 10, the number of test cases. Each test case starts with n, the number of phone numbers, on a separate line, 1 ≤ n ≤ 100000. Then follows n lines with one unique phone number on each line. A phone number is a sequence of at most ten digits.
- 输出
- For each test case, output "YES" if the list is consistent, or "NO" otherwise.
- 样例输入
2391197625999911254265113123401234401234598346
- 样例输出
NOYES
- 来源
- POJ
package acm.ny;import java.util.Arrays;import java.util.Scanner;/** * 先按字符串从大到小排序,再建立字典树。 * @author Administrator * */public class Ny0163_20130608_2105 {private static Node root = null;private static String [] strs = null;public static void main(String[] args) {Scanner in = new Scanner(System.in);int cases, n;boolean isYes = true;cases = in.nextInt();while(cases-->0){root = new Node();n = in.nextInt();strs = new String[n];isYes = true;for(int i = 0; i < n; ++i){strs[i] = in.next();}Arrays.sort(strs);for(int i = 0; i < n; ++i){if(isYes){isYes = addToTree(strs[i]);}}if(isYes){System.out.println("YES");}else{System.out.println("NO");}}}private static boolean addToTree(String str){Node temp = root;for(int i = 0; i < str.length(); ++i){if(null == temp.child[str.charAt(i)-'0']){temp.child[str.charAt(i)-'0'] = new Node();}temp = temp.child[str.charAt(i)-'0'];if(temp.isLeaf){return false;}if(i == str.length() - 1){temp.isLeaf = true;}}return true;}}class Node{boolean isLeaf = false;Node [] child = new Node[10];}
- 南阳理工ACM 162 Phone List
- 南阳理工acm
- 南阳理工acm 1
- 南阳理工acm
- 南阳理工ACM 587 blockhouses
- 南阳理工ACM 263.精挑细选
- 南阳理工ACM 506 洗澡
- 南阳理工--ACM--括号配对
- 南阳理工acm 201 作业题
- 南阳理工acm 1007GCD
- 南阳理工ACM之房间安排
- 南阳理工ACM之矩形的个数
- 南阳理工ACM 106 背包问题
- 南阳理工ACM 2 括号配对问题
- 南阳理工ACM 541 最强战斗力
- 2013南阳理工acm校赛总结
- 南阳理工ACM 21 三个水杯
- 南阳理工 acm 42 一笔画问题
- 让能者不多得
- Java计算器源代码 awt+swing图形界面实现
- MySQL内存表
- 解决hibernate向mysql插入中文乱码问题
- Python文件操作
- 南阳理工ACM 162 Phone List
- GUI
- 30个能有效使用时间的方法。
- 黑马程序员—Java中涉及到的哈希存储知识
- 和我一起来学iOS(五)负责表现的CALayer
- JAVA入门书籍1(备查)
- hdu 1879 继续畅通工程 (并查集)
- 解决LR11录制不能打开IE8的问题
- TBBT的笑点