| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2397 人关注过本帖
标题:[讨论]电话号码问题
只看楼主 加入收藏
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
 问题点数:0 回复次数:22 
[讨论]电话号码问题

商业单位需要容易记忆的电话号码,有一些方法可以让电话号码变得更容易记忆。譬如,可以把电话号码写成单词或短语,如 MON-GLOP 可以代表滑铁卢大学的电话。有时仅仅是把号码的一部分写成单词,如打 310-GINO 便可向 GINO 比萨饼店定购比萨。另一种让电话号码容易记忆的方法是将数字用一种容易记的方式组合起来,譬如 3-10-10-10 也可以代表 GINO 比萨饼店。

电话号码的标准形式是七位十进制数字,在它的第三位和第四位之间用连字符连接(例如:666-1200)。电话的键盘提供了字符与数字之间的映射关系,如下所示:

2 A、B和C
3 D、E和F
4 G、H和I
5 J、K和L
6 M、N和O
7 P、R和S
8 T、U和V
9 W、X和Y

Q 和 Z 没有映射到键盘,而连字符不需要被拨打并且可以根据需要添加和删除。MON-GLOP 的标准形式是 666-4567,310-GINO 的标准形式是310-4466,3-10-10-10的标准形式也是 310-1010。

如果两个电话号码有相同的标准形式,那么这两个电话号码是相同的。

你所在的公司正在编辑一本当地商业单位的电话簿,作为质量控制流程的一部分,你需要确认在该电话簿中有没有错误的电话号码,以及有没有两个(或两个以上的)商业单位使用相同的电话号码。由于当地只使用了 3 和 6 两个区段,因此电话号码的第一个数字应当永远是 3 或者 6,如果出现了其它数字,就表示这个电话号码错了。此外,如果电话号码中出现了 Q 和 Z,也说明这个电话错了。

输入
一次输入为一个样例。每个号码一行,由一组包含十进制数、大写字母(Q、Z 除外)和连字符的字符串组成(每行的字符不会超过 20 个)。每次输入的数据可能会非常大,譬如超过 1,000,000 个电话号码。

你可以假设输入中可能重复的电话号码不超过 1,500 个。

输出
输出包括两个部分,第一个部分是错误的电话号码,对于这些号码应当按照输入的顺序以原始的形式输出。在输出错误电话号码前输出“Error:”,随后输出这些号码,如果没有错误的电话号码,则输出“Not found.”。

第二部分是重复的电话号码,对每一个在电话簿中以任何形式出现一次以上的电话号码,生成一行输出。这一行应以标准形式给出电话号码,其后跟随一个空格,空格后跟随电话号码在电话簿中出现的次数。所有重复的电话号码输出行应以号码的升序排列(小号码在前)。在输出重复电话号码前输出“Duplication”,随后按照上述格式输出号码,如果在输入中没有重复的电话号码,则输出:“Not found.”。

注意
你所编写的程序以后可能会在一种特殊的嵌入式设备上运行,为了降低成本,这种设备使用的 CPU 不是很快、可用的 RAM 为 288K(跟 GBA 一样)且它没有磁盘设备因此不能使用文件作为数据的临时存储。
测试用例 0
测试输入
1 4873279
2 ITS-EASY
3 666-4567
4 3-10-10-10
5 666-GLOP
6 MON-GLOP
7 367-11-11
8 310-GINO
9 F101010
10 666-1200
11 -4-8-7-3-2-7-9
12 487-3279

期待的输出
1 Error:
2 4873279
3 ITS-EASY
4 -4-8-7-3-2-7-9
5 487-3279
6
7 Duplication:
8 310-1010 2
9 666-4567 3

[此贴子已经被作者于2006-11-30 22:32:36编辑过]

搜索更多相关主题的帖子: 电话号码 
2006-11-30 22:32
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
请参考《编程珠玑》第一部分,若程序不能在规定的内存中运行,则不得分。
时间限制 1秒
内存限制 512KB
2006-11-30 22:33
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
内存限制 512KB!!!!!
2006-12-01 18:23
财鸟
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-11-2
收藏
得分:0 
2006-12-01 23:07
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
啥意思
2006-12-01 23:30
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 
楼主貌似北理的!

coding & enjoying
2006-12-01 23:31
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
你也是??
算了,说点有用的吧
2006-12-01 23:37
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
看过以前的帖子,方法不错,就是内存超限
2006-12-02 08:58
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 

问题就是寻找存统计数据的数据结构的问题,可以考虑用Trie也就是单词查找树,或者hash的方法,数据不大的话链表也可以


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2006-12-02 09:18
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
不会啊,谁能用链表编一下?
2006-12-02 09:22
快速回复:[讨论]电话号码问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017877 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved