本文主要是介绍poj 1002 (电话号码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目意思很简单,就不重复了。
这是一个很简单的模拟题,但是我居然wa了很多次。看了题目的讨论,才发现,电话号码还有数字0开头的。简直无语了。。。
2
0000000
0000000
这组数据输出 000-0000 2
也是考虑不全,居然没想到还会有0开头的电话号码。
代码如下:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s1[55]= {"ABCDEFGHIJKLMNOPRSTUVWXY"};
int ans[111111],ot;
int main()
{int n,i,j,t,len;char s[111];scanf("%d",&n);ot=0;for(i=0; i<n; i++){scanf("%s",s);len = strlen(s);int num=0;for(j=0; j<len; j++){if(s[j]=='-')continue;if(s[j]>='0'&&s[j]<='9')num = num*10+(s[j]-'0');else if(s[j]>='A'&&s[j]<='Y'){for(t=0; t<26; t++){if(s[j]==s1[t])break;}num = num*10+(t/3)+2;}}ans[ot++]=num;}ans[ot++]=11111111;sort(ans,ans+ot);int tmp = 1;bool flag = false;for(i=1; i<ot; i++){if(ans[i]==ans[i-1])tmp++;else{if(tmp>1){printf("%03d-%04d %d\n",ans[i-1]/10000,ans[i-1]%10000,tmp);flag = true;}tmp = 1;}}if(!flag)printf("No duplicates.\n");return 0;
}
这篇关于poj 1002 (电话号码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!