大意:
将输入的字符串转换成七位数(如:487-3279),并将转换后的字符串放入map寄存器中,用m[b]++,实现字符串b的插入与计数,最后输出重复的字符串和重复数,如果没有重复的输出No duplicates.
#include<cstdio>
#include<iostream>
#include<map>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
map<string,int>m;
int t,i,j;
string a,b;
cin>>t;
while(t--)
{
cin>>a;
b.clear() ;
j=0;
for(i=0;i<a.length() ;i++)
{
if(j==3)
{
b+='-';
j++;
}
if(a[i]>='0'&&a[i]<='9')
{
j++;
b+=a[i];
}
if(a[i]>='A'&&a[i]<='C')
{
j++;
b+='2';
}
if(a[i]>='D'&&a[i]<='F')
{
j++;
b+='3';
}
if(a[i]>='G'&&a[i]<='I')
{
j++;
b+='4';
}
if(a[i]>='J'&&a[i]<='L')
{
j++;
b+='5';
}
if(a[i]>='M'&&a[i]<='O')
{
j++;
b+='6';
}
if(a[i]>='P'&&a[i]<='S')
{
j++;
b+='7';
}
if(a[i]>='T'&&a[i]<='V')
{
j++;
b+='8';
}
if(a[i]>='W'&&a[i]<='Y')
{
j++;
b+='9';
}
}
m[b]++;
}
int flag=0;
map<string,int>::iterator it1;
for(it1=m.begin() ;it1!=m.end() ;it1++)
{
if((*it1).second!=1)
{
cout<<(*it1).first<<" "<<(*it1).second<<endl;
flag=1;
}
}
if(flag==0)
cout<<"No duplicates."<<endl;
}