百炼OJ - 1002 - 方便记忆的电话号码
题目链接
思路
开个一千万的数组计数,最后遍历即可。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int num=0;
int mymap[10000000] = {0};
int change(char a[201])
{
int j=0, result=0;
for(int i=0;i<strlen(a);i++)
{
if(a[i] == '-') continue;
if(a[i] <= '9' && a[i] >= '0')
{
result = result*10+a[i]-'0';
continue;
}
if( a[i] <= 'O' && a[i] >= 'A' )
{
result = result*10+ (int)((a[i]-'A')/3) + 2;
continue;
}
switch (a[i])
{
case 'P':
case 'R':
case 'S':
result = result*10+7;
break;
case 'T':
case 'U':
case 'V':
result = result*10+8;
break;
case 'W':
case 'X':
case 'Y':
result = result*10+9;
break;
}
}
return result;
}
int main()
{
int n,times=0;
char temp[201];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",temp);
int flag = 0, t;
t = change(temp);
mymap[t] ++;
}
int flag = 0;
for(int i=0;i<10000000;i++)
{
if(mymap[i] < 2) continue;
flag = 1;
char p[8] = {0};
sprintf(p,"%d",i);
if( strlen(p) <= 4 )
{
for(int j=0;j<3;j++)
printf("0");
printf("-");
for(int j=0;j<4-strlen(p);j++)
printf("0");
for(int j=0;j<strlen(p);j++)
printf("%c",p[j]);
}
else
{
for(int j=0;j<7-strlen(p);j++)
printf("0");
for(int j=0;j<strlen(p)-4;j++)
printf("%c",p[j]);
printf("-");
for(int j=strlen(p)-4;j<strlen(p);j++)
printf("%c",p[j]);
}
printf(" %d\n",mymap[i]);
}
if( flag == 0 ) puts("No duplicates.");
return 0;
}
百炼OJ - 1002 - 方便记忆的电话号码的更多相关文章
- PKU OJ 1002 487-3279
PKU OJ 1002 487-3279 487-3279 Description Businesses like to have memorable telephone numbers. One w ...
- 九度OJ 1002:Grading
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:18410 解决:4753 题目描述: Grading hundreds of thousands of Graduate Entrance ...
- Light oj 1002 Country Roads (Dijkstra)
题目连接: http://www.lightoj.com/volume_showproblem.php?problem=1002 题目描述: 有n个城市,从0到n-1开始编号,n个城市之间有m条边,中 ...
- OJ#1002 又是a+b
题目描述: 给定两个正整数a.b(0 < a,b < =10000),求出a+b的和 输入描述: 多组输入,每组输入为一行,里面有2个数a,b(0 < a,b < =10000 ...
- oj 1002题 (大数题)
#include <stdio.h> #include <string.h> int main(void) { int q,j,h,k,l; int d; ],s2[];//题 ...
- 九度oj 1002 Grading 2011年浙江大学计算机及软件工程研究生机试真题
#include<iostream> #include<queue> #include<cstdio> #include<cstring> #inclu ...
- 杭电oj 1002
#include <iostream> #include <algorithm> using namespace std; int nCases; ], n[]; ], b[] ...
- PKU 百炼OJ 简单密码
http://bailian.openjudge.cn/practice/2767/ #include<iostream> #include <cmath> #include ...
- PKU 百炼OJ 奖学金
http://bailian.openjudge.cn/ss2017/A/ #include<iostream> #include <cmath> #include <m ...
随机推荐
- BDA3 Chapter 1 Probability and inference
1. uncertainty aleatoric uncertainty 偶然不确定性 epistemic uncertainty 认知不确定性 2. probability VS likelihoo ...
- vue自学入门-8(vue slot-scope)
vue自学入门-1(Windows下搭建vue环境) vue自学入门-2(vue创建项目) vue自学入门-3(vue第一个例子) vue自学入门-4(vue slot) vue自学入门-5(vuex ...
- html行内元素、块级元素及空元素有哪些?区别是什么?
一. html标签有哪些? 1)行内元素有哪些? 行内元素:行内大多为描述性标记 <span>...</span> <a>...</a> 链接. 锚点 ...
- poj1042题解
h [1,16] hours all_v=h*12 intervals n [2,25] lakes fi inital intervals fi-di*v v [0,all_v) 题意,做每件事情的 ...
- jQuery---内容复习
内容复习 1. 操作样式 (5) 1.1 css操作 设置单个样式 设置多个样式 获取样式 css(name, value) :设置单个样式 css(obj):设置多个样式 css(name):获取样 ...
- 【Unity|C#】基础篇(16)——文件读写(I/O类)
[笔记] 文件操作 File / FileInfo / FileStream https://www.runoob.com/csharp/csharp-file-io.html 文本读写 Stream ...
- Git仓库创建---克隆仓库---初始提交代码
1.在Git上创建仓库,添加成员,默认分支是“master”,仓库路径假设为http://192.168.1.1/root/project.git 2.在sourceTree上,点击“克隆”,输入上面 ...
- java实现判断两个二叉树是否相同
1.定义树节点类:节点值.左节点.右节点.构造器 2.先判断树是否为空的情况 3.树不为空时,判断节点所指的值是否相等,若相等,则递归判断节点的左右节点是否相同,相同则返回true /** * Def ...
- 反射_python
一.反射(通过字符串的形式去操作对象中的成员) 1.getattr:获取对象中的字段和方法 2.hasattr:判断对象里面是否有字段或方法 3.setattr:设置对象里面的字段或方法 4.dela ...
- Python的字典、列表合并
字典合并: 在日常工作中需要对字典进行合并操作,下面提供几个操作方法 1.使用dict(a,**b) 例: >>> a={'a':1,'b':2} >>> b={' ...