永发信息网

杭电acm1022 什么状况,跪求解释!

答案:1  悬赏:60  手机版
解决时间 2021-05-17 00:59

题目地址:

http://acm.hdu.edu.cn/showproblem.php?pid=1022

 

 

下面是我的代码:

 

#include<stdio.h>
#include<string.h>
int main()
{
    int n,i,j;
    int a[10],b[10];
    int p,q;
    int c[10],d[10];
    char e;
    while(scanf("%d",&n)!=EOF)
    {
      getchar();
      memset(a,0,sizeof(a));
      memset(b,0,sizeof(b));
      for(i=0;i<n;i++)
      {
       e=getchar();
       a[i]=e-48;}
       getchar();
      for(i=0;i<n;i++)
      {
       e=getchar();
       b[i]=e-48;}

      p=0;q=0;
      i=0;j=0;
      while(p<n&&q<n)
      {
  c[i]=a[p];d[j]=1;
         i++;p++;j++;
  while(c[i-1]==b[q])
        {q++;
         i--;
         d[j]=0;
         j++;
         }
      }

      if(p==n&&q==n)
      {
      printf("Yes.\n");
      for(i=0;i<2*n;i++)
      if(d[i]==1)
      printf("in\n");
      else
      printf("out\n");
      }
      else
      printf("No.\n");
      printf("FINISH\n");
    }
}

 

 

 

测试数据:8 12345678 54876321时

在TC2上运行完全正确的

但在DeV-C++上运行的结果却不正确

提交的时候是wa

 

到底是为什么呢?

最佳答案
这题没你想想那么简单,要用栈来做的
输入 4 1234 1342
你的程序 输出是no,应该是yes的
in
out
in
in
out
in
out
out
程序的思路就是错的。。。。。。
这是一份AC的C++代码,应该可以看懂 ,楼主可以仿照这个用C 写下

#include <iostream>
#include <string>
using namespace std;

const int Max=100;

int Locate(char array[],char num,int low,int high)
{
for(; array[low]!=num && low<=high ;low++);
if(array[low]!=num)
return -1;
else
return low;
}

int main()
{
int loc,n,i,j,step;
char order1[Max],order2[Max],station[10];
int run[Max];
int top,po1;
bool flag;

while(cin>>n)
{
cin>>order1;
cin>>order2;

memset(station,0,sizeof(station));
top=po1=step=0;
flag=true;
for(i=0;i<n;i++)
{
loc=Locate(station,order2[i],0,top); //在车站的位置
if(loc<0)
{
loc=Locate(order1,order2[i],po1,n); //在进入队列的位置
if(loc<0)

else
{
for(; po1<loc && top<=9 ; po1++,top++,step++)
{
station[top]=order1[po1];
run[step]=1;
}
po1=loc+1; // 出栈本元素
run[step++]=1;
run[step++]=0;
}//if
}
else
{
if(loc==top-1)
{
run[step++]=0;
top--;station[top]=0;
}
else

}
}//for

if(flag)
{
cout<<"Yes.\n";
for(i=0;i<step;i++)
if(run[i])
cout<<"in\n";
else
cout<<"out\n";
}
else
cout<<"No.\n";
cout<<"FINISH\n";
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为啥我家的360安全卫士打不开?
是我自闭还是什么?
是什么造成地球慢慢变热?
和鸡一样的动物有翅膀却飞不高飞不远的
为什么这样热啊?
杞县开封腾飞宾馆地址在什么地方,想今天过去
发光二极管英语怎么说,led灯各发光二极管是怎
东北大学继续教室学院的招生办电话
现在去阳朔是旅游旺季还是淡季,,住宿好住吗
劲舞和QQ炫舞那个要好玩点
QQ飞车断位漂移怎样才能迅速拉回车头?
唐河县南阳鲁爷庙地址在什么地方,想今天过去
谁给我介绍几个欧洲的帅气男网友(年龄19~22
长痘看中医还是皮肤科,考皮肤科需要读什么课
叶县平顶山骆驼蓄电池地址是什么,有没有知道
推荐资讯
老河口市襄樊中源紫砂陶瓷孟楼总经销地址在什
谁帮我找L的QQ皮肤
晋级要提交执业医师注册证吗
鹿邑县周口完达山世纪贝贝孕婴店(宋河医院东
周杰伦09年是不是不出专辑了
感染因素对银屑病的影响
我是云间一滴泪,下列哪句对应最好 :1何苦曾
爱情淡了,是该分手吗?
跪求免洗或水洗的补水效果好的廉价面膜!
DNF刷的封印之息戒指全身套一个部位都要反复
新建里没有了BMP程序也没有怎么办
义马市三门峡顺达五金建材地址在哪里啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?