当前位置:网站首页>487-3279(POJ1002)
487-3279(POJ1002)
2022-06-30 04:03:00 【Cod_ ing】
Businesses like to have memorable telephone numbers. One way to make a telephone number memorable is to have it spell a memorable word or phrase. For example, you can call the University of Waterloo by dialing the memorable TUT-GLOP. Sometimes only part of the number is used to spell a word. When you get back to your hotel tonight you can order a pizza from Gino’s by dialing 310-GINO. Another way to make a telephone number memorable is to group the digits in a memorable way. You could order your pizza from Pizza Hut by calling their ``three tens’’ number 3-10-10-10.
The standard form of a telephone number is seven decimal digits with a hyphen between the third and fourth digits (e.g. 888-1200). The keypad of a phone supplies the mapping of letters to numbers, as follows:
A, B, and C map to 2
D, E, and F map to 3
G, H, and I map to 4
J, K, and L map to 5
M, N, and O map to 6
P, R, and S map to 7
T, U, and V map to 8
W, X, and Y map to 9
There is no mapping for Q or Z. Hyphens are not dialed, and can be added and removed as necessary. The standard form of TUT-GLOP is 888-4567, the standard form of 310-GINO is 310-4466, and the standard form of 3-10-10-10 is 310-1010.
Two telephone numbers are equivalent if they have the same standard form. (They dial the same number.)
Your company is compiling a directory of telephone numbers from local businesses. As part of the quality control process you want to check that no two (or more) businesses in the directory have the same telephone number.
Input
The input will consist of one case. The first line of the input specifies the number of telephone numbers in the directory (up to 100,000) as a positive integer alone on the line. The remaining lines list the telephone numbers in the directory, with each number alone on a line. Each telephone number consists of a string composed of decimal digits, uppercase letters (excluding Q and Z) and hyphens. Exactly seven of the characters in the string will be digits or letters.
Output
Generate a line of output for each telephone number that appears more than once in any form. The line should give the telephone number in standard form, followed by a space, followed by the number of times the telephone number appears in the directory. Arrange the output lines by telephone number in ascending lexicographical order. If there are no duplicates in the input print the line:
No duplicates.
Read the answers of other blogs , It doesn't feel very simple , You can have a look at ( Inspired by classmates )
#include<iostream>
#include<map>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
map <int,int> M;
map <int,int>::iterator it;
int N;
cin>>N;
getchar();
while(N--)
{
int sum=0;
char C;
// In characters , Turn it into numbers
while((C=getchar())!='\n')
switch(C)
{
case 'A':
case 'B':
case 'C':
sum=sum*10+2;break;
case 'D':
case 'E':
case 'F':
sum=sum*10+3;break;
case 'G':
case 'H':
case 'I':
sum=sum*10+4;break;
case 'J':
case 'K':
case 'L':
sum=sum*10+5;break;
case 'M':
case 'N':
case 'O':
sum=sum*10+6;break;
case 'P':
case 'R':
case 'S':
sum=sum*10+7;break;
case 'T':
case 'U':
case 'V':
sum=sum*10+8;break;
case 'W':
case 'X':
case 'Y':
sum=sum*10+9;break;
case '-':
break;
default:
sum=sum*10+C-'0';break;
}
// Use the number after character conversion as “ key ”,“ value ” Record the number of times
M[sum]++;
}
// If input N None of them made any “ key ” One more , Naturally, they are all different
if(M.size()==N)
cout<<"No duplicates.\n";
else
{
for(it=M.begin();it!=M.end();it++)
if(it->second>1)
//“03d” Default left alignment occupy 3 A place , The insufficient part “0” A filling
printf("%03d-%04d %d\n",(it->first)/10000,(it->first)%10000,it->second);
}
return 0;
}
边栏推荐
- Ubuntu20.04 PostgreSQL 14 installation configuration record
- Titanic(POJ2361)
- [punch in - Blue Bridge Cup] day 1 --% 7F format output
- DRF -- nested serializer (multi table joint query)
- Cloud native -- websocket of Web real-time communication technology
- Analysis of similarities and differences of various merged features (Union, merge, append, resolve) in ArcGIS
- Concatenation of Languages(UVA10887)
- Radiant energy, irradiance and radiance
- .NET 7 的 JWT 配置太方便了!
- [Thesis reading | deep reading] role2vec:role based graph embeddings
猜你喜欢

【筆記】AB測試和方差分析

December2020 - true questions and analysis of C language (Level 2) in the youth level examination of the Electronic Society
![[punch in - Blue Bridge Cup] day 4--------- split ('') cannot be used. There is a space after the last number of test cases. Split ()](/img/00/3793a236ee37085cb47dbfa1f0dbff.jpg)
[punch in - Blue Bridge Cup] day 4--------- split ('') cannot be used. There is a space after the last number of test cases. Split ()

Radiant energy, irradiance and radiance

王爽-汇编语言 万字学习总结

I get n offers in two months. I don't have any difficult interviewers here

接口测试--如何分析一个接口?

Jour 9 Gestion des scripts et des ressources

An error occurs when sqlyog imports the database. Please help solve it!

Simple theoretical derivation of SVM (notes)
随机推荐
How do college students make money by programming| My way to make money in College
Node red series (28): communication with Siemens PLC based on OPC UA node
找到接口在表单里加参数
【作业】2022.5.28 将CSV写入数据库
关于智能视觉组上的机械臂
RPC correction based on arcpy API
[operation] write CSV to database on May 28, 2022
Sql语句遇到的错误,求解
Interface testing -- how to analyze an interface?
[note] Introduction to data analysis on June 7, 2022
idea灰屏问题
云原生——Web实时通信技术之Websocket
Unity 在编辑器中输入字符串时,转义字符的输入
Linear interpolation of spectral response function
第九天 脚本與資源管理
Version correspondence table of tensorflow, CUDA and bazel
基于海康EhomeDemo工具排查公网部署出现的视频播放异常问题
A minimalist way to integrate databinding into activity/fragment
UML diagrams and list collections
UML图与List集合