美文网首页
栈混洗问题的一般处理

栈混洗问题的一般处理

作者: qratosone | 来源:发表于2016-03-01 00:04 被阅读0次

使用一个临时变量temp,初始值为1,代表模板数据

对于输入数据的判断:

建立一个while循环,以及bool变量flag,条件为栈的size不超过最大值和flag为真

如果当前栈为空,或者输入数据不等于栈顶元素,则加一个更大的(自增1)的temp入栈

如果等于栈顶元素则出栈

while循环结束之后判断栈是否溢出,如果溢出则将flag设置为false

新一轮开始之前如果栈不为空则应首先清空

#include<iostream>
#include<stack>
#include<vector>
using namespace std;

int main()
{
    int M, N, K;//M为栈的最大容量,N为要检查序列的长度,K为检查次数
    cin >> M >> N >> K;
    stack<int>check;
    int input;
    for (int i = 0; i < K; i++) {
        int temp = 1;
        bool flag = true;
        for (int j = 0; j < N; j++)
        {
            cin >> input;
            while (check.size()<=M&&flag)
            {
                if (check.empty() ||input!=check.top())
                {
                    check.push(temp++);
                }
                else if(input==check.top())
                {
                    check.pop();
                    break;
                }
            }
        }
        if (check.size()>M) {
            flag = false;

        }
        if (flag) {
            cout << “YES” << endl;
        }
        else {
            cout << “NO” << endl;
        }
        while  (!check.empty()) {
            check.pop();
        }
    }

    return 0;
}

相关文章

  • 栈混洗问题的一般处理

    使用一个临时变量temp,初始值为1,代表模板数据 对于输入数据的判断: 建立一个while循环,以及bool变量...

  • 数据结构随笔——栈的混洗

    1. 前言杂谈 近来重新整理学习一下数据结构知识,看到了数据结构相关的考试中常考栈的一种题型,最近才得知这类问题的...

  • 22 栈的压入、弹出序列 (栈混洗 stack permutat

    栈的压入、弹出序列 题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出...

  • performSelector

    消息处理之performSelector[爆栈热门 iOS 问题] performSelector may cau...

  • JVM 虚拟机栈

    虚拟机栈 栈是运行时单位,堆是存储的单位; 栈解决程序运行问题,如何运行,如何处理数据; 堆解决数据如何存放,存放...

  • 用两个栈实现一个队列&用两个队列实现一个栈

    1. 两个栈实现一个队列 栈的先进后出特性非常适合处理多层闭合问题,比如括号处理、函数的递归调用、树的遍历、汉诺塔...

  • 009,两个栈实现队列

    用两个栈实现队列 解题思路in 栈用来处理入栈(push)操作,out 栈用来处理出栈(pop)操作。一个元素进入...

  • 快速认识Hadoop生态系统

    就目前来说Hadoop已经成为处理大数据的问题的必备的组件,许多的大厂都已经在使用Hadoop软件栈处理自己的问题...

  • Java对象内存模型和GC机制

    JVM中的堆和栈,方法区 1.栈是运行时的单位,堆是存储的单位。2.栈解决程序的运行问题,即程序如何执行,如何处理...

  • JVM调优:相关概念

    堆与栈 栈是运行时的单位,而堆是存储的单位。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是...

网友评论

      本文标题:栈混洗问题的一般处理

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