zoukankan      html  css  js  c++  java
  • HDU 1022 火车进站【栈】

     题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022

    题目大意:

    题目大概意思:有N辆火车,以序列1方式进站,判断是否能以序列2方式出栈。进站不一定是一次性进入,也就是说中途可以出站。

    #include <cstdio>
    #include <stack>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int i, j, n;char a[10], b[10], c[30];
        while (scanf("%d", &n) != EOF)
        {
            getchar();
            stack<char>q;
            scanf("%s", a);
            scanf("%s", b);
            int k = 0,m=0;
            for (i = 0; i < n; i++)
            {
                q.push(a[i]);
                c[m++] = 1;
                while (q.top() == b[k])
                {
                    k++;
                    q.pop();
                    c[m++] = 0;
                    if (!q.size())break;         //也一定要加上这句,不然如果栈中无元素的话,q.top()的时候就会出错   ******
                    /*if (k >= n)break; */           //不一定要加上这一句,因为栈空的时候,b[]数组一定没有越界,两种情况都符合
                }                          
            }
            if (!q.size())
            {
                printf("Yes.
    ");
                for (i = 0; i < m; i++)
                {
                    if (c[i] == 1)printf("in
    ");
                    else
                        printf("out
    ");
                }
            }
            else printf("No.
    ");
            printf("FINISH
    ");
        }
        return 0;
    }

    2018-04-04


    作者:is_ok
    出处:http://www.cnblogs.com/00isok/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    JAVA的向上转型 和 向下转型
    Mobx 常用函数整理
    HTTP错误代码对应
    D3官网上的力导图
    用D3画简单的力导图
    nodejs 爬图片
    nodejs 爬热搜
    canvas 图片旋转 导出下载
    canvas 电子签名
    canvas 音乐跳动效果
  • 原文地址:https://www.cnblogs.com/00isok/p/8716721.html
Copyright © 2011-2022 走看看