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 |
注意保存电话号码的临时数组,一定要开大如题。但如果你用的 getchar()请求输入,则不存在这个问题。 我没用搜索方法,1000Ms,还是过啦:) 直接建个超大的数组进行查找的……很流氓 #include <stdio.h> #include <string.h> #define MAX 10000000 int trans_c(char c){ char search[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; char corespond[]="222333444555666777788899990123456789"; int pos=strchr(search,c)-search; return (pos>=0)?corespond[pos]-'0':-1; } long trans(char s[]){ int n=strlen(s); int res=0,t,i; for(i=0;i<n;i++) { t=trans_c(s[i]); if(t==-1) continue; else { res*=10; res+=t; } } return res; } void output(int tel[], long i) { int first=i/10000, second=i%10000; printf("%03d-%04d %d\n",first,second,tel[i]); } int tel[MAX]={}; main(){ long i; int n; char hold[200]; int dec=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s",hold); tel[trans(hold)]++; } for(i=0;i<MAX;i++) if(tel[i]>1){ output(tel,i);dec=1;} if(!dec) 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