POJ 1002

来源:互联网 发布:国内外大数据公司 编辑:程序博客网 时间:2024/06/06 08:35
#include <iostream>#include <map>#include <string>using namespace std;char array[32]={"2223334445556667Q77888999Z"};//下标0代表'A',值为2int main(){int n;string str;while(~scanf("%d",&n)){map<string,int> m;int num=0,f=0;for(int i=0;i<n;i++){cin>>str;for(int j=0;j<str.size();j++){if(str[j]=='-')str.erase(j--,1);/*删除所有的'-',j--是因为后面的字符替换了前面的, 下一次循环时应该从删除处开始判断*/ else if(str[j]>='A'&&str[j]<='Z') str[j]=array[str[j]-'A'];}str.insert(3,1,'-');//在第三个位置插入'-'m[str]++;//如果str存在,则m[str]++,否则添加str,初始值为0,并m[str]++} for(map<string,int>::iterator it=m.begin();it!=m.end();it++)//使用迭代器(即指针)访问map内部元素 if(it->second>1)//{f=1;//若进入这里,则说明存在重复号码printf("%s %d\n",it->first.c_str(),it->second);}if(!f)printf("No duplicates.\n");}return 0;}/*数据:3-----1234567-1-2-3-4-5670000000*/

0 0
原创粉丝点击