| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
终于AC了,STL,有点慢922MS#include <iostream>
#include <map>
#include <string>
using namespace std;
char change[] = {'2','2','2','3','3','3','4','4','4',
'5','5','5','6','6','6','7','Q','7','7','8','8','8','9','9','9','Z'};
int main()
{
map<string,int> resultset;
map<string,int>::iterator iter;
int line;
scanf("%d",&line);
int i;
for(i=0;i<line;i++)
{
char temp[100];
scanf("%s",temp);
char afterchange[9];
int j=0,k=0;
int length = strlen(temp);
while(j<length)
{
if(k==3)
{
afterchange[k++]='-';
}
else if(temp[j]<'Z'&&temp[j]>='A')
{
afterchange[k++]=change[temp[j++]-'A'];
}
else if(temp[j]=='-')
{
j++;
}
else
{
afterchange[k++]=temp[j++];
}
}
afterchange[k]='\0';
++resultset[afterchange];
}
bool flag = false;
map<string,int>::iterator end = resultset.end();
for(iter = resultset.begin(); iter != end; ++iter)
{
if(iter->second>1)
{
flag = true;
cout<<iter->first<<" "<<iter->second<<endl;
}
}
if(flag==false)
cout<<"No duplicates."<<endl;
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator