题目
模拟
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#include<cctype>
#include<iostream>
using namespace std;
char temp[100];
char str[100];
int main(){
int n;
scanf("%d",&n);
map<string,int> mp;
for(int i=0;i<n;i++){
memset(temp,0,sizeof(temp));
memset(str,0,sizeof(str));
scanf("%s",str);
int len = strlen(str);
int cnt=0;
int k=0;
for(int i=0;i<len;i++){
if(str[i]=='-') continue;
cnt++;
if(str[i]>='A'&&str[i]<='Y'){
if(str[i]>='A'&&str[i]<='P'){
str[i]='0'+(str[i]-'A')/3 + 2;//转换成数字
}else{
if(str[i]>='R'&&str[i]<='S') str[i]='7';
else if(str[i]>='T'&&str[i]<='V') str[i]='8';
else str[i]='9';
}
}
temp[k++]=str[i];
string s=temp;
if(s.size()==7) mp[s]++;
}
}
map<string,int>::iterator it;
int flag=0;
for(it=mp.begin();it!=mp.end();it++){
if(it->second<=1) continue;
for(int j=0;j<it->first.size();j++){
printf("%c",it->first[j]);
if(j==2) printf("-");
}
flag=1;
printf(" %d\n",it->second);
}
if(!flag) printf("No duplicates.\n"); //注意点号和第一个首字母大写
}