当前位置:网站首页>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;
}
边栏推荐
- How to solve the problem of link hyperlinks when trying to link the database?
- DBT product initial experience
- dotnet-exec 0.5.0 released
- 绿色新动力,算力“零”负担——JASMINER X4系列火爆热销中
- About manipulator on Intelligent Vision Group
- December2020 - true questions and analysis of C language (Level 2) in the youth level examination of the Electronic Society
- Play with algorithm interview together, nanny level strategy (with high-definition codeless algorithm summary map), recommended collection
- UML diagrams and list collections
- Collinearity problem
- Is the largest layoff and salary cut on the internet coming?
猜你喜欢

About manipulator on Intelligent Vision Group

ThingsBoard教程(二三):在规则链中计算二个设备的温度差

Do280 private warehouse persistent storage and chapter experiment

Selenium environment installation, 8 elements positioning --01

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

11: I came out at 11:04 after the interview. What I asked was really too

UML diagrams and list collections

NER中BiLSTM-CRF解读score_sentence
![[image fusion] multi focus and multi spectral image fusion based on cross bilateral filter and weighted average with matlab code](/img/9c/2553d192c2f9b93acc6550220c447f.png)
[image fusion] multi focus and multi spectral image fusion based on cross bilateral filter and weighted average with matlab code

Smart use of bitmap to achieve 100 million level massive data statistics
随机推荐
第十天 数据的保存与加载
I spent three years in a big factory outsourcing, which subverted my understanding!
RPC correction based on arcpy API
errno和perror
MySQL updates JSON string in array form
lego_ Reading and summary of loam code
Smart use of bitmap to achieve 100 million level massive data statistics
Titanic(POJ2361)
【作业】2022.5.28 将CSV写入数据库
[note] on May 27, 2022, MySQL is operated through pychart
Solve the problem of Navicat connecting to the database
[punch in - Blue Bridge Cup] day 1 --% 7F format output
(03).NET MAUI实战 基础控件
dotnet-exec 0.5.0 released
Quick sort & merge sort
第十一天 脚本与游戏AI
dbt产品初体验
Solutions for project paths
《机器人SLAM导航核心技术与实战》第1季:第0章_SLAM发展综述
绿色新动力,算力“零”负担——JASMINER X4系列火爆热销中