| ||||||||||
| 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:AC了,空间换时间,没用排序。“39320K 594MS C 890B”。代码只有30+行。In Reply To:Re:AC了,空间换时间,没用排序。“39320K 594MS C 890B”。代码只有30+行。 Posted by:szpgod at 2011-04-28 09:36:31 > #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
> int main()
> {
> int phoneNum;
> int i,j,k,m=0;
> int tempNum;;
> int noDupli =0;
> int len;
> char str[100]={0};
> int *flag=NULL;
> char temp[100]={0};
> scanf("%d",&phoneNum);
> flag=(int*)malloc(10000000*sizeof(int));
> memset(flag,0,10000000*sizeof(int));
>
> for(i =0;i<phoneNum;i++)
> {
> scanf("%s",str);
> len =strlen(str);
> k=0;
> for (j=0;j<len;j++)
> {
> if (str[j] == '-' || str[j]=='Q' || str[j]=='Z')
> {
> continue;
> }
> if (str[j]>='A' && str[j]<='C')
> {
> temp[k++]='2';
> }
> else if (str[j]>='D' && str[j]<='F')
> {
> temp[k++]='3';
> }
> else if (str[j]>='G' && str[j]<='I')
> {
> temp[k++]='4';
> }
> else if (str[j]>='J' && str[j]<='L')
> {
> temp[k++]='5';
> }
> else if (str[j]>='M' && str[j]<='O')
> {
> temp[k++]='6';
> }
> else if (str[j]>='P' && str[j]<='S')
> {
> temp[k++]='7';
> }
> else if (str[j]>='T' && str[j]<='V')
> {
> temp[k++]='8';
> }
> else if (str[j]>='W' && str[j]<='Y')
> {
> temp[k++]='9';
> }
> else if (str[j]>='0' && str[j]<='9')
> {
> temp[k++] =str[j];
> }
>
> }
> temp[k++]='\0';
> tempNum =atoi(temp);
> flag[tempNum]++;
> memset(temp,0,k);
> }
> for (i=0;i<10000000;i++)
> {
> if (flag[i]>1)
> {
> noDupli =1;
> printf("%03d-%04d %d\n",i/10000,i%10000,flag[i]);
> }
> }
> if (!noDupli)
> {
> printf("No duplicates.");
> }
> return 0;
> }
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator