您的位置:首页 > 其它

UVaOJ 755 - 487--3279

2012-11-23 19:23 337 查看
AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume
1. Elementary Problem Solving ::Sorting/Searching

Description

一个电话号码, 有不同的表示方式。

输入不同方式表示的电话号码。

输出所有出现超过一次的电话号码及其出现频率。

Type

Sorting/Searching

Analysis

利用 STL, 轻松加愉快。

Solution

// UVaOJ 755
// 487--3279
// by A Code Rabbit

#include <algorithm>
#include <cctype>
#include <iostream>
#include <map>
#include <string>
using namespace std;

const char MAP[] = "22233344455566677778889999";

int n;
string tel;

int main() {
int t;
cin >> t;
while (t--) {
// Input.
cin >> n;
cin.get();
map<string, int> cnt;
for (int i = 0; i < n; i++) {
getline(cin, tel);
tel.erase(remove(tel.begin(), tel.end(), '-'), tel.end());
for (int i = 0; i < tel.length(); i++)
if (isupper(tel[i]))
tel[i] = MAP[tel[i] - 'A'];
tel.insert(3, "-");
cnt[tel]++;
}
// Output.
bool bo = false;
for (map<string, int>::iterator
iter = cnt.begin(); iter != cnt.end(); ++iter)
{
if (iter->second > 1) {
cout << iter->first + " " << iter->second << endl;
bo = true;
}
}
if (!bo) cout << "No duplicates." << endl;
if (t) cout << endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: