`
ysshuai19
  • 浏览: 15369 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

POJ 1002 解题报告 487-3279

    博客分类:
  • POJ
阅读更多

典型的字符串处理问题。

刚开始用的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;
}






0
0
分享到:
评论

相关推荐

    POJ1002-487-3279【Hash+Qsort】

    3. "POJ1002-487-3279.doc":这是一个文档文件,很可能包含了详细的解题报告,详细阐述了解题过程、算法分析、代码实现及测试情况。 在哈希表的使用中,需要注意冲突解决策略,如开放寻址法、链地址法等。快速排序...

    POJ 1002 487-3279解题报告

    ### POJ 1002 487-3279 解题报告 #### 题目背景与概述 本题目属于电话号码处理问题,主要考查字符串处理、哈希表应用以及排序等相关算法知识。题目描述了一个有趣的场景:为了方便记忆,企业往往希望自己的电话...

    POJ解题报告--1005

    ### POJ解题报告--1005 #### 题目概述 本题要求编写一个程序,模拟根据地块的半圆面积计算该地块开始侵蚀的年份。具体来说,对于每个地块,输入两个坐标值(x 和 y),分别表示地块在平面直角坐标系中的位置。然后...

    POJ3253-POJ3253-Fence Repair【STL优先队列】

    描述“北大POJ3253-POJ3253-Fence Repair【STL优先队列】解题报告+AC代码”表明这是一篇关于如何解答此题目的报告,其中包含了通过AC(Accepted)状态的代码,即代码已经成功通过了所有测试用例。解题报告通常会涵盖...

    poj 3414解题报告

    poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告

    poj_1002_487.rar_poj 1002

    【标题】"poj_1002_487.rar_poj 1002"指的是北京大学在线编程平台上的第1002道题目,这道题目涉及到计算机科学中的算法设计与实现,特别是字符串处理和哈希映射。在这个问题中,我们需要编写一个程序,该程序能够...

    poj 1012解题报告

    poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告

    poj 2329解题报告

    poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告

    poj 1440解题报告

    poj 1440解题报告 poj 1440解题报告 poj 1440解题报告 poj 1440解题报告

    poj 3083解题报告

    poj 3083解题报告poj 3083解题报告poj 3083解题报告poj 3083解题报告

    poj多道----acm----解题报告

    理解为求封闭多边形内所有垂直板子受灯照的光照强度之和,因此我们需要对多边形的每个边进行处理。根据题目给出的光照强度公式,我们可以...解题的关键在于正确理解和应用光照强度的物理模型,以及有效地进行向量运算。

    poj 1659解题报告

    poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告

    acm竞赛----北大poj详细解题报告

    【ACM竞赛与北大POJ解题报告】 在编程竞赛领域,ACM(国际大学生程序设计竞赛,简称ACM/ICPC)是一项极具影响力的比赛,它挑战参赛者的算法设计、问题理解和快速编码能力。北京大学(Peking University)的在线判题...

    北大poj解题报告

    这个“北大poj解题报告”包含了作者在使用POJ平台解题过程中的学习总结和经验分享,旨在帮助软件工程专业的学生提升编程能力和算法理解。 解题报告通常会涵盖以下几个方面: 1. **基础算法讲解**:解题报告中可能...

    poj 3720解题报告

    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 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...

    POJ 1150 The Last Non-zero Digit解题报告

    业余爱好。所以,算法不一定好,CODING也不一定佳,效率不一定高,只是能通过online judge而已。

    poj1691解题报告

    ### poj1691解题报告 #### 题目信息 - **题目名称**:Painting A Board - **时间限制**:1S - **内存限制**:1000K - **提交总数**:62 - **通过总数**:35 - **来源**:...

    POJ1258-Agri-Net【Prim】

    【描述】"北大POJ1258-Agri-Net【Prim】 解题报告+AC代码" 暗示了这是一个关于如何解决该编程题目的指南,包括了解题思路的阐述和通过测试(Accepted,简称AC)的源代码。解题报告通常会涵盖问题的理解、算法的选择...

    POJ 部分题解 解题报告

    10. **POJ 2528 线段树.txt**:这是第三个线段树相关的题目,解题报告可能会深入讲解线段树在不同场景下的应用。 通过阅读这些解题报告,你可以学习到各种高级算法的应用,如动态规划、搜索算法、数据结构(如线段...

Global site tag (gtag.js) - Google Analytics