小墨在努力!!
吗了个b的。。。。。

WA了五六次,感谢讨论版的数据!!!!是用map<int ,int>过的

#include <stdio.h>
#include <string.h>
#include <map>
using namespace std;
int main()
{
int n ,i ,j ,len ,num ,m[300] ,flag = 0;
char str[50];
m['0'] = 0 ,m['1'] = 1;
m['2'] = m['A'] = m['B'] = m['C'] = 2;
m['3'] = m['D'] = m['E'] = m['F'] = 3;
m['4'] = m['G'] = m['H'] = m['I'] = 4;
m['5'] = m['J'] = m['K'] = m['L'] = 5;
m['6'] = m['M'] = m['N'] = m['O'] = 6;
m['7'] = m['P'] = m['R'] = m['S'] = 7;
m['8'] = m['T'] = m['U'] = m['V'] = 8;
m['9'] = m['W'] = m['X'] = m['Y'] = 9;
map<int ,int> maptest;
scanf("%d",&n);
getchar();
for(i = 1 ;i <= n ;i++)
{
scanf("%s",str);
getchar();
len = strlen(str);
num = 0;
for(j = 0 ;j < len ;j++)
{
if(str[j] == '-') continue;
else num = num * 10 + m[str[j]];
}
maptest[num]++;
}
for(map<int ,int>::iterator it = maptest.begin() ;it != maptest.end() ;it++)
{
if(it -> second > 1)
{
flag = 1;
num = it -> first;
printf("%03d-%04d %d\n",num / 10000 ,num % 10000 ,it -> second);
}
}
if(!flag) printf("No duplicates.\n");
return 0;
}

 

posted on 2012-01-28 10:57  小墨在努力!!  阅读(151)  评论(0编辑  收藏  举报