/* * POJ_1002_1.cpp * * Created on: 2013年11月3日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <map> using namespace std; char buf[10]; //需要注意的是Q、Z没有 int num[] = { 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 0, 7, 7, 8, 8, 8, 9, 9, 9 }; int main(){ map<int,int> s; int t; scanf("%d",&t); int i; for(i = 0 ; i < t; ++i){ scanf("%s",buf); int j; int c = 0; for(j = 0 ; buf[j] ; ++j){//将输入的字符串转换成一个数字。当buf[j]为'\0'时结束 if(isdigit(buf[j])){ c = c*10 + buf[j] - '0'; }else if(isalpha(buf[j])){ c = c*10 + num[buf[j] - 'A']; } } s[c]++;//这个数字的使用次数+1 } bool flag = false; for(map<int,int>::iterator it = s.begin();it != s.end() ; ++it){ if((*it).second > 1){ flag = true; //%03d :输出的数字占3位,不够用0补足 printf("%03d-%04d %d\n",(*it).first/10000,(*it).first%10000,(*it).second); } } if(!flag){ printf("No duplicates.\n"); } return 0; }