`
peizhiinfo
  • 浏览: 1422366 次
文章分类
社区版块
存档分类
最新评论

Hdu-1671 Phone List

 
阅读更多

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671

题目大意:

给你很多电话号码,判断其中是否存在号码是其他号码的前缀,若存在,输出NO.否则输出YES


解题思路:

很简单的字典树的变形。只需要判断2种情况:

1. 9112然后输入911

2.911然后输入9112


通过这道题,认识了一种灰常巧妙的方法:空插法(自己起的名。。。。)

就是如果存在一个号码是另一个号码的前缀,则结果就确定了是NO.但是你还是需要继续输入剩下的号码。当时想用一个break跳出,但是这显然就是不行的。后来看网上的解题报告,发现可以用一个bool型变量标记是否出现这种情况。

如果已经出现前缀,则将bool赋值为false。然后对以后的号码就不需要进行处理,continue即可。若没有出现前缀,则还是插入字典树。这样,就可以非常巧妙的避免前面出现前缀而后面做无用功的情况。

代码如下:


动态分配内存+释放



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics