方便记忆的电话号码C语言
英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:
A,B,C -> 2
D,E,F -> 3
G,H,I -> 4
J,K,L -> 5
M,N,O -> 6
P,R,S -> 7
T,U,V -> 8
W,X,Y -> 9
标准的电话号码格式是xxx-xxxx,其中x表示0-9中的一个数字。有时为了方便记忆电话号码,我们会将电话号码的数字转变为英文字母,如把263-7422记成America。有时,我们还加上“-”作为分隔符,如把449-6753记成Hi-World。当然,我们未必要将所有的数字都转变为字母,比如474-6635可以记成iPhone-5。
总之,一个方便记忆的电话号码由数字和除Q、Z外的英文字母组成,并且可以在任意位置插入任意多的“-”符号。
现在 ,我们有一个列表,记录着许多方便记忆的电话号码。不同的方便记忆的电话号码可能对应相同的标准号码,你的任务就是找出它们。
输入
第一行是一个正整数n(n <= 100000),表示列表中的电话号码数。
其后n行,每行是一个方便记忆的电话号码,它由数字和除Q、Z外的英文字母、“-”符号组成,其中数字和字母的总数一定为7,字符串总长度不超过200。
输出
输出包括若干行,每行包括一个标准电话号码(xxx-xxxx)以及它重复出现的次数k(k >= 2),中间用空格分隔。输出的标准电话号码需按照升序排序。
如果没有重复出现的标准电话号码,则输出一行“No duplicates.”。
样例输入
12 4873279 ITS-EASY 888-4567 3-10-10-10 888-GLOP TUT-GLOP 967-11-11 310-GINO F101010 888-1200 -4-8-7-3-2-7-9- 487-3279
样例输出
310-1010 2 487-3279 4 888-4567 3
#include<stdio.h>
#include<string.h>
#define max 201
int main()
{int n,j,i,count,ch,k,t,max2,p=0;scanf("%d",&n);getchar();char a[n][max],b[9];for(i=0;i<n;i++){gets(a[i]);j=0;while(a[i][j]!='\0'){if(a[i][j]=='A'||a[i][j]=='B'||a[i][j]=='C')a[i][j]='2';else if(a[i][j]=='D'||a[i][j]=='E'||a[i][j]=='F')a[i][j]='3';else if(a[i][j]=='G'||a[i][j]=='H'||a[i][j]=='I')a[i][j]='4';else if(a[i][j]=='J'||a[i][j]=='K'||a[i][j]=='L')a[i][j]='5';else if(a[i][j]=='M'||a[i][j]=='N'||a[i][j]=='O')a[i][j]='6';else if(a[i][j]=='P'||a[i][j]=='R'||a[i][j]=='S')a[i][j]='7';else if(a[i][j]=='T'||a[i][j]=='U'||a[i][j]=='V')a[i][j]='8';else if(a[i][j]=='W'||a[i][j]=='X'||a[i][j]=='Y')a[i][j]='9';j++;}max2=j;for(k=0;k<=max2;k++){if(a[i][k]=='-'&&j!=2){for(t=k;t<=max2;t++){a[i][t]=a[i][t+1];}}}if(a[i][3]!='-'){for(t=max2;t>2;t--){a[i][t+1]=a[i][t];}a[i][3]='-'; }}for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j][0]>a[j+1][0]){strcpy(b,a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],b);}for(i=0;i<n;i++) {count=1;for(j=i;j<n;j++)if(i!=j&&strcmp(a[i],a[j])==0&&a[i][0]!='#'){a[j][0]='#';count++;p=1;}if(count>=2){printf("%s %d\n",a[i],count);}}if(p==0)printf("No duplicates.\n");}
方便记忆的电话号码C语言相关推荐
- OpenJudge 方便记忆的电话号码
目录 方便记忆的电话号码 要求: 描述: 输入: 输出: 样例输入: 样例输出: 问题分析: 最终代码: 总结: 方便记忆的电话号码 要求: 总时间限制: 2000ms 内存限制: ...
- OPJ1002 方便记忆的电话号码
描述 英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示: A,B,C -> 2 D,E,F -> 3 G,H,I -> 4 J,K,L -> 5 M,N,O -> ...
- 百练1002:方便记忆的电话号码(C++实现,北大软微)
百练1002:方便记忆的电话号码 1-描述 英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:A,B,C -> 2D,E,F -> 3G,H,I -> 4J,K,L -> ...
- 记忆化搜索c语言,2017C语言混搭 标题:10.图形排版 搜索+记忆化
标题:图形排版 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi. 假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 该工具会按照图片顺 ...
- 英语词根词缀记忆法(全集)_语言学习 | 英语词根词缀学习参考
参考书: 1.<英语词根与单词的说文解字>(新版) 2.<英语词缀与英语派生词>(新版) <英语词根与单词的说文解字>(新版),和<英语词缀与英语派生词> ...
- 输出姓名对应的电话号码C语言,C语言电话本程序(只是简单的姓名和电话号码增删改查),在线等...
满意答案 528428a 2016.05.12 采纳率:52% 等级:7 已帮助:8人 #include #include #include #define OK 1 #define ERROR ...
- c语言记忆化搜索,HNUSTC语言基础简单数据结构acm入门第一讲搜索.ppt
C语言基础,简单数据结构,ACM入门讲座搜索部分 Bjut:mark063 2010.10.30 1 Evaluation only. Created with Aspose.Slides for . ...
- c语言程序怎么记忆,c语言的记忆方法指导
c语言的记忆方法指导 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.下面小编给大家整理了c语言的记忆方法,供大家参阅. "(逻辑)非 算(术运算符) 关(系运 ...
- ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT
来源:机器之心本文约3200字,建议阅读7分钟 在 ACL 2021 的一篇杰出论文中,研究者提出了一种基于单语数据的模型,性能却优于使用双语 TM 的「TM-augmented NMT」基线方法. ...
最新文章
- 指针的本质是:内存(地址)+ 类型 装包解包
- poj 2201 构造
- mysql字符集排序规则_Mysql 字符集及排序规则
- 计算机基础应用的培养活动记录,计算机应用基础综合实训
- 王道考研 计算机网络16网络层功能 数据交换方式 电路交换 报文交换 分组交换 路由算法 OSPF RIP AS自治系统 IGP内部网关协议 EGP外部网关协议
- bios设置_bios怎么设置显存 bios设置显存教程【图文】
- android 百度地图 点标记偏移,百度地图设置中心点偏移(中心点不被页面其他元素遮挡)...
- linux sort命令 性能,Linux sort 命令简单使用
- 如何选择行业,让选择大于努力
- mysql的ddl的语句有_Mysql操作之部分DDL语句
- rango php,韩天峰(Rango)的博客
- postfix反垃圾邮件说明
- vite 预编译实现
- 侯捷 C++11/14 笔记
- Python:实现similarity search相似性搜索算法(附完整源码)
- linux module 目录,linux module工具安装与使用
- kali连接MySQL
- ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
- Android 自定义控件起步:自定义TextView
- windows 程序设计 第三章读书笔记(上)