典型的字符串处理问题。
刚开始用的vector,果断超时。题目本身没什么难度,只在选择容器上要考虑。
AC咯。
#include <iostream>
#include <string>
#include <iomanip>
#include <map>
using namespace std;
int nicknameToNumber(string&);
int main ()
{
int iPhoneTotal;
cin >> iPhoneTotal;
map<int, int> mPhone;
while (iPhoneTotal--)
{
string strTemp;
cin >> strTemp;
++mPhone[nicknameToNumber(strTemp)];
}
int iFlag = 0;
map<int, int>::iterator iter = mPhone.begin();
while (iter != mPhone.end())
{
if (iter->second > 1)
{
iFlag = 1;
cout << setw(3) << setfill('0') << iter->first/10000 << "-" << setw(4) << iter->first%10000 << " " << iter->second << endl;
}
iter++;
}
if (!iFlag)
{
cout << "No duplicates." << endl;
}
return 0;
}
int nicknameToNumber(string& strPhone)
{
int r = 0;
int i = 0;
while (i < strPhone.size())
{
if ('-' == strPhone[i] || 'Q' == strPhone[i] || 'Z' == strPhone[i])
{
}
else if (strPhone[i] >= 'A' && strPhone[i] <= 'P')
{
r = r * 10 + 2 + (strPhone[i] - 'A')/3;
}
else if (strPhone[i] >= 'R' && strPhone[i] <= 'Y')
{
r = r * 10 + 2 + (strPhone[i] - 'A' -1)/3;
}
else if (strPhone[i] <= '9' && strPhone[i] >= '0')
{
r = r * 10 + (strPhone[i] - '0');
}
i++;
}
return r;
}
分享到:
相关推荐
3. "POJ1002-487-3279.doc":这是一个文档文件,很可能包含了详细的解题报告,详细阐述了解题过程、算法分析、代码实现及测试情况。 在哈希表的使用中,需要注意冲突解决策略,如开放寻址法、链地址法等。快速排序...
### POJ 1002 487-3279 解题报告 #### 题目背景与概述 本题目属于电话号码处理问题,主要考查字符串处理、哈希表应用以及排序等相关算法知识。题目描述了一个有趣的场景:为了方便记忆,企业往往希望自己的电话...
### POJ解题报告--1005 #### 题目概述 本题要求编写一个程序,模拟根据地块的半圆面积计算该地块开始侵蚀的年份。具体来说,对于每个地块,输入两个坐标值(x 和 y),分别表示地块在平面直角坐标系中的位置。然后...
描述“北大POJ3253-POJ3253-Fence Repair【STL优先队列】解题报告+AC代码”表明这是一篇关于如何解答此题目的报告,其中包含了通过AC(Accepted)状态的代码,即代码已经成功通过了所有测试用例。解题报告通常会涵盖...
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
【标题】"poj_1002_487.rar_poj 1002"指的是北京大学在线编程平台上的第1002道题目,这道题目涉及到计算机科学中的算法设计与实现,特别是字符串处理和哈希映射。在这个问题中,我们需要编写一个程序,该程序能够...
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1440解题报告 poj 1440解题报告 poj 1440解题报告 poj 1440解题报告
poj 3083解题报告poj 3083解题报告poj 3083解题报告poj 3083解题报告
理解为求封闭多边形内所有垂直板子受灯照的光照强度之和,因此我们需要对多边形的每个边进行处理。根据题目给出的光照强度公式,我们可以...解题的关键在于正确理解和应用光照强度的物理模型,以及有效地进行向量运算。
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
【ACM竞赛与北大POJ解题报告】 在编程竞赛领域,ACM(国际大学生程序设计竞赛,简称ACM/ICPC)是一项极具影响力的比赛,它挑战参赛者的算法设计、问题理解和快速编码能力。北京大学(Peking University)的在线判题...
这个“北大poj解题报告”包含了作者在使用POJ平台解题过程中的学习总结和经验分享,旨在帮助软件工程专业的学生提升编程能力和算法理解。 解题报告通常会涵盖以下几个方面: 1. **基础算法讲解**:解题报告中可能...
poj 3720解题报告poj 3720解题报告poj 3720解题报告poj 3720解题报告
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
业余爱好。所以,算法不一定好,CODING也不一定佳,效率不一定高,只是能通过online judge而已。
### poj1691解题报告 #### 题目信息 - **题目名称**:Painting A Board - **时间限制**:1S - **内存限制**:1000K - **提交总数**:62 - **通过总数**:35 - **来源**:...
【描述】"北大POJ1258-Agri-Net【Prim】 解题报告+AC代码" 暗示了这是一个关于如何解决该编程题目的指南,包括了解题思路的阐述和通过测试(Accepted,简称AC)的源代码。解题报告通常会涵盖问题的理解、算法的选择...
10. **POJ 2528 线段树.txt**:这是第三个线段树相关的题目,解题报告可能会深入讲解线段树在不同场景下的应用。 通过阅读这些解题报告,你可以学习到各种高级算法的应用,如动态规划、搜索算法、数据结构(如线段...