您的位置:首页 > 其它

poj 1002 487-3279(使用STL map)

2014-07-25 19:22 429 查看
//poj 1002 487-3279(使用STL map)
#include<iostream>
#include<cstdio>
#include<string>
#include<string.h>
#include<iostream>
#include<map>
using namespace std;
int ma[120];
void init()
{
ma['-']=10;
for(int i=0;i<3;i++)
{
ma['A'+i]=2;
ma['D'+i]=3;
ma['G'+i]=4;
ma['J'+i]=5;
ma['M'+i]=6;
//ma['P'+i]=7;
ma['T'+i]=8;
ma['W'+i]=9;
}
ma['P']=ma['R']=ma['S']=7;
for(int i=0;i<=9;i++)
{
ma[i+'0']=i;
}
}
int main()
{
map<string,int> mp;
map<string,int>::iterator it;
char str[100];
string s;
int a[8];
char str1[9];
int t;
init();
cin>>t;
str1[3]='-';
for(int di=0;di<t;di++)
{
scanf("%s",str);
int len=0;
int n=strlen(str);
for(int i=0;i<n;i++)
{
if(ma[str[i]]!=10)
{
a[len++]=ma[str[i]];
if(len==7) break;
}
}
str1[0]=a[0]+'0';str1[1]=a[1]+'0';str1[2]=a[2]+'0';
str1[4]=a[3]+'0';str1[5]=a[4]+'0';str1[6]=a[5]+'0';
str1[7]=a[6]+'0';
str1[8]='\0';
s=str1;
mp[s]++;
}
int flag=false;
for(it=mp.begin();it!=mp.end();it++)
{
if((it->second)>1)
{
flag=true;
cout<<it->first;
printf(" %d\n",it->second);
}
}
if(flag==false)
{
puts("No duplicates.");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: