#include<iostream> #include<string.h> #include<algorithm> #include<cmath> #include<stdio.h> /* 题目: 输入两个整数序列,第一个序列1表示栈的压入顺序,第二个序列2表示栈的弹出顺序. 判断第一个栈是否可以以第二个序列的方式弹出. */ /* 思路: 设置一个辅助栈,遍历序列2. 若遍历到的序列2的元素与栈顶元素相同,则弹出栈,遍历下一个元素: 若遍历到的…
原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为第一个序列的出栈序列.注意:假设压栈序列的全部数字均不相等.  例如: 序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列.(注意:出栈序列和入栈序列相等) 2.思路 定义一个辅助栈和两个变量.把第一个序列中的数字依次压入辅助栈,并…
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 是该压栈序列对应的一个弹出序列,但 4,3,5,1,2 就不可能是该压栈序列的弹出序列.(注意:这两个序列的长度是相等的) 解法 1:辅助栈 需要一个辅助栈,来模拟出入栈的过程.算法流程如下: 取压入队列的首元素,将其压入辅助栈 检查辅助栈顶元素是否和弹出队列的首元素相等: 若相等,则辅助栈弹出栈…
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第 二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等. 例如序列1.2.3.4.5是某栈的压栈序列,序列4.5.3.2.1 是该压栈序列对应的一个弹出序列,但4.3.5.1.2就不可能是该 该压栈序列的弹出序列. 这种判断其实只要掌握栈的先进后出原则,则不难解决. 本题的题解步骤如下: 1.设置一个辅助栈S,用于模拟出栈入栈顺序,设入栈顺序序列为pPush,出栈顺序序列为pPop 2.设置两个索引或指针分别指向入栈序列和出栈序列…
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列. package com.exe4.offer; import java.util.ArrayList; /** * 19[题目]输入两个整数序列,第一个序列表示栈的压入顺序, * 请判断第二个序列是否为该栈的弹出顺序.假设压…
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列.(注意:这两个序列的长度是相等的) class Solution: def IsPopOrder(self, pushV, popV): # write code here lenpushV=len(pushV) lenp…
/************************************************************************* > File Name: 20_IsPopOrder.cpp > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年08月30日 星期二 19时53分19秒 *********************************************…
剑指Offer:栈的压入.弹出序列[31] 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列.(注意:这两个序列的长度是相等的) 题目分析 我们可以找到判断一个序列是不是栈的弹出序列的规律: 如果下一个弹出的数字刚好是栈顶数字,那么直接弹出: 如果下一个弹出的数组不在栈顶,则…
该题目来源于牛客网<剑指offer>专题. 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列.(注意:这两个序列的长度是相等的) Go语言实现: func isPopOrder(push, pop []int) bool { if len(push) == 0 || len(po…
剑指 Offer 31. 栈的压入.弹出序列 Offer_31 题目详情: 解析: 这里需要使用一个栈来模仿入栈操作. package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/1/31 14:12 */ import java.util.Arrays; import java.util.Stack; /** * 题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. * 假…