您的位置:首页 > 其它

poj 1002 (电话号码)

2015-05-13 07:47 204 查看
题目意思很简单,就不重复了。

这是一个很简单的模拟题,但是我居然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