经典指数          
原因
743
浏览数
0
收藏数
 

移动推出的校内网短号和亲情网短号非常方便,但在某款新手机里却出现了尴尬的bug。例如,当通讯录中包含如下号码时: 1.小王:600 2.小李:467654 3.小张:600010 输入600时,手机会直接自动打给了小王,因此永远没法打给小张。现在有很多部手机都有这种问题,nowcoder想要找到一个办法来判断每个号码簿里的号码是不是有这种冲突。 输入描述: 输入有多组数据。每组数据第一行是一个整数n,(1≤n≤10000)。紧接着有n行电话号码,号码只有数字组成,长度不超过11位。 输出描述: 对应每组输入,有一行输出:如果电话簿中存在冲突的号码,就输出“Yes”;否则输出“No”。 输入例子: 391197625999911254265113123401234401234598346 输出例子: YesNo

     举报   纠错  
 
切换
1 个答案

我觉得用Tie树也可以解决,在每次经过一个深度为3的节点时,检查此处是否有一个完整的电话号码。如果有,则冲突检测到了,如果没有且当前插入的号码本身长度只有3,那么检查该节点是否还有子节点,有则冲突存在。复杂度大约为n。 还可以排个序,再注意检查,复杂度大约为n*lgn。

 
切换
撰写答案