| ||||||||||
| 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 | |||||||||
互相学习一下,难道动态的分配空间不行的,老是RE(附code)测试都对的#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
using namespace std;
char *str[10000005];
int char_interpret(char c)
{
if(c>='A'&&c<='C')
return '2';
if(c>='D' && c<='F')
return '3';
if(c>='G'&&c<='I')
return '4';
if(c>='J' && c<='L')
return '5';
if(c>='M' && c<='O')
return '6';
if(c=='P'||c=='R'||c=='S')
return '7';
if(c=='T'||c=='U'||c=='V')
return '8';
if(c=='W'||c=='X'||c=='Y')
return '9';
return c;
}
int cmp(const void *b,const void *a)
{
return (strcmp(*(char **)b,*(char **)a));
}
void interpret(char *p)
{
int i,k;
k=0;
for(i=0;*(p+i)!='\0';i++)
{
if(*(p+i)!='-')
{
*(p+k++)=char_interpret(*(p+i));
}
}
*(p+k)='\0';
// printf("%s\n",p);
}
int main()
{
int i,n,sum,flag;
flag=0;
cin>>n;
for(i=0;i<n;i++)
{
str[i]=(char *)malloc(sizeof(char *));
cin>>str[i];
interpret(str[i]);
}
qsort(str,n,sizeof(str[0]),cmp);
sum=1;
for(i=1;i<n;i++)
{
if(strcmp(str[i-1],str[i])==0)
sum++;
else
{
if(sum>1)
{
flag=1;
for(int j=0;str[i-1][j]!='\0';j++)
{
if(j==3)
cout<<'-';
cout<<str[i-1][j];
}
cout<<' '<<sum<<endl;
}
sum=1;
}
}
if(sum>1)
{
flag=1;
for(int j=0;str[i-1][j]!='\0';j++)
{
if(j==3)
cout<<'-';
cout<<str[i-1][j];
}
cout<<' '<<sum<<endl;
}
if(flag==0)
printf("No duplicates.\n");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator