• hdu1022Train Problem I(栈的模拟)


    用到的一些栈的东西:

    <stack>类文件中的函数

    stack<int>p;定义一个int型的栈p

    p.push(x)向栈中压入一个元素x

    p.top()取栈顶元素的值

    p.pop()弹出栈顶元素

    p.empty()清空栈

    isEmpty()判断栈是否为空

    #include<stdio.h>
    #include<stack>
    using namespace std;
    int main()
    {
    
        int n,i,j,b[200],k;
        char o1[100],o2[100];
            stack<char>p;
            p.push('s');//提前在栈的底部添加一个元素
        while(scanf("%d",&n)!=-1)
        {
            stack<char>p;
            p.push('s');
            scanf("%s %s",o1,o2);
            i=0;j=0;k=0;
            while(i<n&&j<=n)/*一定是i<n,因为最后一个出栈后会是i=n,如果是i<=n的话就会继续把后面的\0进栈之后才终止*/
            {
                if(o2[i]==p.top())
                {
                    i++;
                    p.pop();
                    b[k++]=0;//1代表进栈0代表出栈
                }
                else
                {
                    p.push(o1[j]);
                    j++;
                    b[k++]=1;
                }
            }
            if(p.top()=='s')
            {
                printf("Yes.\n");
                for(i=0;i<n*2;i++)
                {
                    if(b[i]==0)
                    printf("out\n");
                    else
                    printf("in\n");
                }
                printf("FINISH\n");
            }
            else
            {
                printf("No.\n");
                printf("FINISH\n");
            }
            while(p.top()!='s')
            p.pop();
        }
        return 0;
    }

    作者: 点A点C

    出处: http://www.cnblogs.com/ACshasow/>

    关于作者:游戏开发、算法研究,请多多赐教!

    本文版权归作者(点A点C)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(572779130@qq.com)咨询.

  • 相关阅读:
    Bzoj3339 Rmq Problem
    Bzoj3509 [CodeChef] COUNTARI
    浅析python日志重复输出问题
    mysql练习题
    python学习之思维导图
    python面向对象编程练习
    Python常见下划线
    内置方法
    类的绑定方法与非绑定方法
    封装
  • 原文地址:https://www.cnblogs.com/ACshasow/p/2786217.html
Copyright © 2020-2023  润新知