锁定老帖子 主题:杰哥私房题──487-3279
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-26
问题描述 电话号码的标准格式是七位十进制数,并在第三、第四位数字之间有一个连接符。电话拨 #include <stdio.h> #include <string.h> #include <stdlib.h> char stor[10000][8]; char input[16]; void test(int index){ int i; for(i = 0; i < 8; i ++){ printf("%c", stor[index][i]); } } void initialize(int index){ int i; int j = 0; for(i = 0; i < 16; i ++){ if(input[i] == '-') continue; stor[index][j] = input[i]; j++; } } void map(int index){ char mapEle[] = "22233344455566670778889990"; int i; for(i = 0; i < 8;i ++){ if(stor[index][i] >= 'A' && stor[index][i] < 'Z') stor[index][i] = mapEle[stor[index][i] - 'A']; } } int compare(const void* elem1, const void* elem2){ return(strcmp((char*) elem1, (char*)elem2)); } void showPhone(int index){ int i; for(i = 0; i < 8; i ++){ printf("%c", stor[index][i]); if(i == 2) printf("-"); } printf(" "); } void findDuplicates(int row){ int duplicate = 0; int i; for(i = 0; i < row; i ++){ int j, ini = i; for(j = i + 1; j < row; j++){ if(strcmp(stor[i],stor[j]) == 0) i++; else break; } if(ini != i){ duplicate = 1; showPhone(i - 1); printf("%d\n", i - ini + 1); } } if(!duplicate) printf("No duplicates.\n"); } int main(){ int nCases, k; //char input[16]; scanf("%d", &nCases); for(k = 0; k < nCases; k++){ scanf("%s", input); initialize(k); map(k); } qsort(stor, nCases, 8, compare);//自动排序函数 findDuplicates(nCases); return 0; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-28
绝对有必要收藏!
|
|
返回顶楼 | |
发表时间:2009-03-02
lishali12345 写道 绝对有必要收藏! 呵呵 多关注关注 还有很多呢 |
|
返回顶楼 | |
发表时间:2009-03-27
在pku 的online judge上做过这道题
|
|
返回顶楼 | |
发表时间:2009-05-01
經典題,基本OJ上都有
|
|
返回顶楼 | |
浏览 2722 次