#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
string convert_to_standard(string telephone);
int main(){
map <string , int> unique_telephones;
map <string , int> :: iterator iter;
bool tag = true;
int number_of_telephones = 0;
cin >> number_of_telephones ;
for (int i = 0 ; i < number_of_telephones ; i ++){
string temp_telephone = "";
cin >> temp_telephone;
string telephone = convert_to_standard(temp_telephone);
iter = unique_telephones.find(telephone);
if (iter != unique_telephones.end()){
tag = false;
iter -> second += 1;
}
else
unique_telephones.insert(pair <string , int> (telephone , 1));
}
if (!tag){
for (iter =unique_telephones.begin(); iter != unique_telephones.end(); ++iter){
if (iter -> second > 1)
cout << iter -> first << " " << iter -> second << endl;
}
}
else cout << "No duplicates." << endl;
return 0;
}
string convert_to_standard(string telephone){
string result = "";
for (int i = 0 ; i < telephone.size() ; i ++){
char digit = (char)telephone[i];
if (digit >= 'A' && digit <= 'Z'){
if (digit == 'A' || digit == 'B' || digit == 'C')
result += '2';
if (digit == 'D' || digit == 'E' || digit == 'F')
result += '3';
if (digit == 'G' || digit == 'H' || digit == 'I')
result += '4';
if (digit == 'J' || digit == 'K' || digit == 'L')
result += '5';
if (digit == 'M' || digit == 'N' || digit == 'O')
result += '6';
if (digit == 'P' || digit == 'R' || digit == 'S')
result += '7';
if (digit == 'T' || digit == 'U' || digit == 'V')
result += '8';
if (digit == 'W' || digit == 'X' || digit == 'Y')
result += '9';
}
else if (digit >= '0' && digit <= '9')
result += digit;
}
result = result.substr(0,3) + "-" + result.substr(3);
return result;
}
487-3279
最新推荐文章于 2014-04-19 15:23:35 发布