题目大意:
给 出 t 个号码,根据映射条件 判断出现两次及以上的号码。。
stl map应用
#include<iostream>
#include<map>
#include<string>
using namespace std;
char cmap[26]={'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'};
map<string,int>mymap;
int main(){
int t;
string s;
mymap.clear();
cin>>t;
while(t--){
cin>>s;
string tmps="";
for(int i=0;i<s.size();i++){
if(s[i]>='A'&&s[i]<='Z'){
tmps+=cmap[s[i]-'A'];
}
else if(s[i]>='0'&&s[i]<='9'){
tmps+=s[i];
}
//if(tmps.length()==3)tmps+='-';
}
tmps.insert(3,"-");
mymap[tmps]++;
}
bool flag=false;
map<string,int>::iterator it;
for(it=mymap.begin();it!=mymap.end();it++){
if(it->second<2)continue;
cout<<it->first<<" "<<it->second<<endl;
flag=true;
}
if(!flag)cout<<"No duplicates."<<endl;
return 0;
}