#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
bool can_remove(char iter)
{
if(iter=='-')return true;
return false;
}
int main()
{
int n;
cin>>n;
vector<string> enums;
vector<int> num;
while (n-->0)
{
string str1;
cin>>str1;
string::iterator a;
a=remove_if(str1.begin(),str1.end(),can_remove);
str1.erase(a,str1.end());
for(a=str1.begin();a!=str1.end();++a)
{
switch (*a)
{
case 'A':
case 'B':
case 'C':
*a='2';
break;
case 'D':
case 'E':
case 'F':
*a='3';
break;
case 'G':
case 'H':
case 'I':
*a='4';
break;
case 'J':
case 'K':
case 'L':
case 5:
*a='5';
break;
case 'M':
case 'N':
case 'O':
*a='6';
break;
case 'P':
case 'R':
case 'S':
*a='7';
break;
case 'T':
case 'U':
case 'V':
*a='8';
break;
case 'W':
case 'X':
case 'Y':
*a='9';
break;
default:
break;
}
}
enums.push_back(str1);
/*remove_if(str2.begin(),str2.end(),can_remove);*/
/*if(equal(str1.begin(),str1.end(),str2.begin()))
{
enums.push_back(str1);
}*/
}
sort(enums.begin(),enums.end());
vector<string>::iterator i;
int count=1;
bool dup=false;
for(i=enums.begin();i!=enums.end()-1;++i)
{
if(i->compare(*(i+1))==0)
{
count+=1;
}
else
{
if(count>1)
{
dup=true;
i->insert(i->begin()+3,'-');
cout<<*i<<" "<<count<<endl;
}
count=1;
}
}
if(count>1)
{
dup=true;
i->insert(i->begin()+3,'-');
cout<<*i<<" "<<count<<endl;
}
if(!dup)
{
cout<<"No duplicates."<<endl;
}
return 0;
}
POJ1002
最新推荐文章于 2021-02-28 23:11:56 发布