poj-POJ 1002 自测没问题 提交总是wrong answer

作者:用户 来源:互联网 浏览:603 次 时间:2016-01-21 18:35:45

poj

poj-POJ 1002 自测没问题 提交总是wrong answer - 摘要: POJ1002自测没问题提交总是wronganswer#include#include#include#definetypeintchartransfer[26]={2,2,2,3,3,3,4,4,4

问题描述

POJ 1002 自测没问题 提交总是wrong answer

#include
#include
#include

#define type int

char transfer[26]={2,2,2,
3,3,3,
4,4,4,
5,5,5,
6,6,6,
7,7,7,7,
8,8,8,
9,9,9,9};

typedef struct repeat
{
char num[8];
struct repeat * next;
}RPT;

void std(char * in,char *out)
{
int i,j=0;
char c;
out[7]=0;
for(i=0;i {
while(in[j]=='-')j++;
c=in[j++];
if(c>=65)
{
out[i]=transfer[c-65];
}
else
{
out[i]=c-48;
}
}

return;

}

int strcasecmp(char * s1,char *s2)
{
int i=0;
while(s1[i])
{
if(s1[i]>s2[i])return 1;
else if(s1[i]<s2[i]) return -1;
i++;
}
if(s2[i]==0)return 0;
else return -1;
}

int main(void)
{
RPT * rhead;
short intbytes;

type *******head=NULL;//相当于trie树的东西
type * p;

RPT *rp,*tmprp,*tmprp1;
int n,i,j,count;
char unstd[20];
char stdn[9];

intbytes=sizeof(type)*10;
head=(type*******)malloc(intbytes);
memset((void*)head,0,intbytes);


rp=rhead=(RPT*)malloc(sizeof(RPT));
rp->num[0]=0;
rp->next=NULL;

scanf("%d",&n);

for(i=0;i<n;i++)
{
    scanf("%s",unstd);
    std(unstd,stdn);

    //1234567出现的次数存放在head[1][2][3][4][5][6][7]里面
    p=(type*)head;
    for(j=0;j<6;j++)
    {
        if(0==p[stdn[j]])
        {
            p[stdn[j]]=(type)malloc(intbytes);
            memset((void*)p[stdn[j]],0,intbytes);
        }
        p=(type*)p[stdn[j]];
    }
    count=++p[stdn[6]];

    //如果count==2,则需要在repeat裢表中创建一个结点
    if(count==2)
    {
        rp=(RPT*)malloc(sizeof(RPT));
        memcpy(rp->num,stdn,8);

        //将rp结点按字典顺序插入repeat裢表中
        tmprp1=rhead;
        tmprp=rhead->next;
        while(tmprp)
        {
            if(strcasecmp(rp->num,tmprp->num)>0)
            {
                tmprp1=tmprp;
                tmprp=tmprp->next;
            }
            else
            {
                break;
            }
        }
        rp->next=tmprp1->next;
        tmprp1->next=rp;

    }

}

rp=rhead->next;
if(rp==NULL)
{
    printf("No duplicates.n");
}
else
{
    while(rp)
    {
        memcpy(stdn,rp->num,8);
        printf("%d%d%d-%d%d%d%d %dn",rp->num[0],rp->num[1],rp->num[2],rp->num[3],rp->num[4],rp->num[5],rp->num[6],head[stdn[0]][stdn[1]][stdn[2]][stdn[3]][stdn[4]][stdn[5]][stdn[6]]);
        rp=rp->next;
    }
}
return 0;

}

解决方案

就没人看下吗,。。。。。。

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
云栖社区(yq.aliyun.com)为您免费提供poj-POJ 1002 自测没问题 提交总是wrong answer相关信息,包括 poj 的信息 ,所有poj-POJ 1002 自测没问题 提交总是wrong answer相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_79602,您可以点击poj-POJ 1002 自测没问题 提交总是wrong answer-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航