美文网首页
2018-01-21

2018-01-21

作者: Gleisure | 来源:发表于2018-01-25 01:27 被阅读0次

知识点:栈

       栈是一种常用的先进后出的线性表,只能在一端进行插入或删除操作。表中允许进行插入、删除操作的一端称为栈顶,另一端为栈底。栈中没有数据元素时称为空栈,插入操作称为压栈或进栈,删除操作称为退栈或出栈。

题目:

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

题目解析:

题目模拟火车站台火车进出顺序,要求第一行输入一个整数表示火车数量,接着输入火车进站顺序和出栈顺序,若能按顺序进出,则输出“yes”,并输出进出顺序,若不能,则输出“no”,结束输出“Finnish”。可用c++的stack容器解决该问题。

使用stack容器要加#include<stack>头文件。操作有:

1.入栈:s.push(x)

2.出栈:s.pop()     注意:出栈操作只是删除栈顶元素,不返回该元素。

3.访问栈顶:s.top()

4.判断栈空:s.empty()  栈为空时为true

5.访问栈中的元素个数:s.size()

解题代码:

#include

#includeusing namespace std;

int main()

   int n;

   char in[100]; 

   char out[100]; 

   int flag[100];

  while(cin>>n) 

 {

      cin>>in;

      cin>>out;

      stack s;

       int i=0;      

       int j=0;      

       for(i;i<=n;)

       {

            if(s.empty())  

            {

                s.push(in[i]);

                flag[i+j] = 0;

                i++;          

            }

            if(!s.empty()&&s.top()!=out[j])

            {

                s.push(in[i]);

                flag[i+j] = 0;

                i++;

            }

            if(!s.empty()&&s.top()==out[j])

            {

                s.pop();

                flag[i+j] = 1;

                j++;

            }                           

        }

        if(s.empty())                    

        {

            cout<<"Yes."<<endl;

            for(i=0;i<2*n;i++)

            {

                if(flag[i]!=1)    cout<<"in"<<endl;

                 else   cout<<"out"<<endl;

             }

             cout<<"FINISH"<<endl;

        }

  else

  { 

      cout<<"NO"<<endl;

      cout<<"FINISH"<<endl;

  }

}

return 0;

}

相关文章

  • 三十岁之前的171天 -161

    2018-01-21 161天 羡慕 看了阿米尔汗的电影——《Secret Super Star》 还是延续了《摔...

  • 明道1968讲《黄帝内经》之“我们该怎样过好夏天?”

    明道1968 明道1968讲《黄帝内经》之“我们该如何过好夏天?” 2018-01-21 21:409 明道196...

  • 2018-01-21

    珍品艾条,过节送礼佳选 2018-01-21 南阳汉医艾绒有限责任公司 点蓝字关注我们哦

  • #周检视慧大大#2018年1月第4周

    你如果不改造自己,你就会被别人改造! 周检视日期:2018-01-21~2018-01-27 目标回顾: 2018...

  • 2018-01-21

    佛说:伤害你之人,便是渡你之人! 2018-01-21 佛经故事大全 言语伤人,比杀人还要严重。忍辱就像大海、能够...

  • 无问西东,做回真实的自己

    原创2018-01-21 安黎霞 含章读书 爱你所爱,行你所行,听从内心,无问西东!——题记 从影院出...

  • 2018-01-22

    还在被拖延症困扰?迈出了第一步,你就已经成功了80%! 原创 2018-01-21 竹笛 [个人发展学会] • 问...

  • 日精进打卡第148天

    2018-01-21 姓名:刘卫师: 公司:宁波大发化纤有限公司 《六项精进》289期反省二组纪律委员【日精进打卡...

  • First-Day6

    2018-01-21 早上醒来,天还没亮,看了看表,还是决定起床。 洗脸,刷牙,补水,化妆。 然后在四周转了将近一...

  • 2018-01-22

    人为什么要辛苦赚钱,这是我听过的最好回答(精辟!) 2018-01-21 管理思维 再累,也要骄傲地活! 辛苦地赚...

网友评论

      本文标题:2018-01-21

      本文链接:https://www.haomeiwen.com/subject/bmdfaxtx.html