北大ACM题目(1002) 代码C++
#include <iostream>
#include <map>
#include <string>
#include <ctype.h>
#include <algorithm>
using namespace std;
int main()
{
char a[] = { '2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9', '9'};
int times;
int index;
int repeat = 0;
string number;
map<string, int> duplicates;
map<string, int>::const_iterator beg;
cin >> times;
for (int i = 0; i < times; ++i)
{
cin >> number;
number.erase(std::remove(number.begin(), number.end(), '-'), number.end());
for (int j = 0; j < number.length(); ++j)
{
if (isalpha(number[j]))
{
index = number[j] - 'A';
number[j] = a[index];
}
}
number.insert(3,"-");
duplicates[number]++;
}
for (beg = duplicates.begin(); beg != duplicates.end(); ++beg)
{
if (beg->second > 1)
{
cout << beg->first << " " << beg->second << endl;
repeat = 1;
}
}
if (!repeat)
cout << "No duplicates." << endl;
return 0;
}