题意:找出有重复的电话号码,输出这些号码的标准形式和出现的次数。

当电话号码不足7位时,用‘0’补位。

刚开始以为用边输入边比较,最后排序输出是最高效的算法,但一直Time limit exceeded,“山外青山楼外楼”,网友们的算法更是巧妙和高效啊,涨姿势了。

发现一点:用sort函数无法对二维字符数组进行排序,只能将二维数组转换成结构体数组,再对结构体数组进行排序。

Code:

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<algorithm>
using namespace std;
struct DS{char pn[300];
};
DS ds[100010];char mapn[30]="22233344455566670778889990",s[300];bool cmp(DS a,DS b)
{return strcmp(a.pn,b.pn)<0;
}int main()
{int N;scanf("%d",&N);while(N--){int n;scanf("%d",&n);getchar();for(int i=0;i<n;i++){int t=0;char ch;memset(s,0,sizeof(s));while(ch=getchar()){if(ch!='\n'){if(isalpha(ch)){int e=ch-'A';s[t++]=mapn[e];}if(isdigit(ch))s[t++]=ch;}elsebreak;}if(t<7){for(int j=t;j<7;j++)s[j]='0';}s[7]='\0';strcpy(ds[i].pn,s);}sort(ds,ds+n,cmp);int num=0,p=0,j=0;for(int i=0;i<n;i++){if(strcmp(ds[j].pn,ds[i].pn)==0)num++;else{if(num>1){p=1;for(int k=0;k<7;k++){printf("%c",ds[j].pn[k]);if(k==2)printf("-");}printf(" %d\n",num);}j=i;num=1;}if(i==n-1&&num>1){p=1;for(int k=0;k<7;k++){printf("%c",ds[j].pn[k]);if(k==2)printf("-");}printf(" %d\n",num);}}if(!p)printf("No duplicates.\n");if(N) printf("\n");}return 0;
}

--------------------------------------------------------------------------------------------

Keep It Simple,Stupid!

--------------------------------------------------------------------------------------------

UVa:755 - 487--3279相关推荐

  1. UVA:1593 代码对齐

    题意:输入若干行代码,要求各列单词的左边界对齐且尽量靠左.单词之间要求至少空一格.每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路:对每一行输入进行处理,去除所有空格,只保 ...

  2. UVA:1600 巡逻机器人

    转载:https://blog.csdn.net/u014004096/article/details/42920629 题意大概: 机器人要从一个m*n(m和n的范围都在1到20的闭区间内)的网格的 ...

  3. UVA:10118 Free Candies

    题目链接 题目大意: 有4堆糖果,每一堆有n个糖果,有一个篮子,这个篮子的最大容量为5块糖,每一次从这四堆中选择一堆,然后将最上面的糖果拿下来,放到篮子里面去,如果有相同两块糖的就把这:两块糖拿出来, ...

  4. 推荐:PHPCMS v9 安全防范教程!

    一.目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了. 如果通过chmod 755 * -R 的话,php文件的权限就高了. ...

  5. Linux文件权限:特殊权限、权限属性、权限掩码

    目录 特殊权限 概述 取值 作用 SUID 概述 授权方式 测试案例 SUID总结 SGID 概述 授权方式 测试案例 SUID总结 SBIT(sticky) 概述 授权方式 测试案例 SUID总结 ...

  6. Linux 的chmod权限数字777、755、644代表什么?

    chmod Linux/Unix 的档案调用权限分为三级 : 档案拥有者.群组.其他. 这是比较官方的话,可能不太好理解 我来举个例子 假设你有一本书,那么<档案拥有者>就相当于你那本书的 ...

  7. 每天学习一个设计模式(八):创建型之抽象工厂模式

    目录 一.基本概念 二.通俗解释 三.应用场景 1.使用简单工厂模式的解决方案 2.抽象工厂模式 抽象工厂模式结构 在什么情况下应当使用抽象工厂模式 抽象工厂模式的起源 四.抽象工厂模式的优缺点 抽象 ...

  8. UVa 321 The New Villa,2B青年怒找卧室

    题目链接: UVA : http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24 ...

  9. 记录一次FTP登录500 OOPS:cannot change directory解决方案

    因业务需求,捡起了好久没碰的代码和Linux,学会了javascript和node-red等.填平了好多坑,还比较开心.在开心之余又碰到了一个FTP登录问题. 背景:需要修改用户家目录. 直接上图 如 ...

最新文章

  1. 集成有MAX1169,MAX520的DAAC单片STC8G1K08机电路板
  2. Caused by: java.net.UnknownHostException: localhost.localdomain: localhost.localdomain的问题解决
  3. 微信视频号推荐算法上分技巧
  4. 时序分析:串匹配—Brute-Force算法
  5. vaadin_Vaadin Flow –奇妙的鹿
  6. java关闭窗口函数_2016年将是Java终于拥有窗口函数的那一年!
  7. Creating Apps With Material Design —— Creating Lists and Cards
  8. python绘制三维图散点图_python matplotlib模块——绘制三维图形、三维数据散点图...
  9. 亚马逊AWS IoT
  10. python 全栈开发,Day109(客户管理之动态二级菜单)
  11. JFrame真正全屏
  12. 计算机网络课设--小型企业网络的规划与设计
  13. s7200cpu224xp手册_西门子plc s7-200系列|s7-200 cpu224xp|CPU224 XP 高速I/O
  14. 城市智慧灯杆解决方案
  15. 谷歌搜索组建discuz!_Google的热门搜索结果? 惊喜! 是谷歌
  16. 微信开放平台Android常见问题
  17. iOS应用发布流程详解
  18. WTL自绘界面库(CQsStatic)
  19. RTX 4070TI和RTX 3090TI性能哪个好 RTX 4070ti和RTX3090ti 差距
  20. 石化煤矿化工行业安全生产风险预警系统软件

热门文章

  1. android 遇到Error:Execution failed for task ':app:processDebugManifest'. 解决
  2. Pandas教程目录
  3. 树莓派安装下载机Deluge
  4. 【车载以太网】【UDPNM】网络管理详述
  5. 免费P2P穿透通信(1) 软件架构介绍
  6. css制作的漂亮的3D产品展示卡片
  7. Axure中继器实现三级菜单
  8. 内网管理系统-让网络管理更轻松
  9. h5背景音乐播放代码
  10. Scala 优雅的异常处理之 try 与 Try