美文网首页数据结构北京市
一道关于abcdef入栈出栈问题

一道关于abcdef入栈出栈问题

作者: 夏广成 | 来源:发表于2016-11-01 15:09 被阅读677次

关于阿里的一道面试题,如果abcdef顺序入栈,那么下面不可能出现的出栈顺序是:

A:fedcba
B:dcbaef  // abcd入栈,dcba依次出栈,e入栈,e出栈,f入栈,
C:edcbaf  // abcde入栈,edcba依次出栈,f入栈,f出栈
D:dbcaef   

对于这样的题,也不是无规律可循,主要就是满足三个条件:

1、在原序列中相对位置比它小的,必须是逆序;
2、在原序列中相对位置比它大的,顺序没有要求;
3、以上两点可以间插进行。

这三个条件咋一看,比较蒙,那么我们就举例来看:

第一个选项

当f第一个出栈时,在原序列中相对位置比它小的,是abcde,他们在这个f之后的出栈中是否是abcde相反的呢?edcba满足条件
当e第二个出栈,在原序列中相对位置比它小的,是abcd,他们在e出栈之后的出栈中是否是abcd相反的呢?dcba满足条件
当d第三个出栈,在原序列中相对位置比它小的,是abc,他们在d出栈之后的出栈中是否是abc相反的呢?cba满足条件
……

第二个选项

当d第一个出栈,在原序列中相对位置比它小的是abc,abc三个元素在d出栈之后的出栈中是否是相反排序的呢?cba满足
当c第二个出栈,在原序列中相对位置比它小的是ab,ab二个元素在c出栈之后的出栈中是否是相反排序的呢?ba满足
当b第三个出栈,在原序列中相对位置比它小的是a,a一个元素在b出栈之后的出栈中是否是相反排序的呢?a满足
当a第四个出栈,在原序列中没有比a更小的啦,所以满足条件。
当e第五个出栈,在原序列中相对位置比它小的是abcd,abcd四个元素在d出栈之后的出栈中是否是相反排序的呢?由于e之后只有f,因此满足条件

第三个选项

当e第一个出栈,在原序列中相对位置比它小的是abcd,abcd四个元素在e出栈之后的出栈中是否是相反排序的呢?dcba满足
当d第二个出栈,在原序列中相对位置比它小的是abc,abc三个元素在d出栈之后的出栈中是否是相反排序的呢?cba满足
当c第三个出栈,在原序列中相对位置比它小的是ba,ba二个元素在c出栈之后的出栈中是否是相反排序的呢?ba满足
当b第四个出栈,在原序列中相对位置比它小的是a,a一个元素在b出栈之后的出栈中是否是相反排序的呢?a满足
当a第五个出栈,在原序列中没有比a更小的了,所以满足条件

第四个选项

当d第一个出栈,在原序列中相对位置比它小的是abc,abc三个元素在b出栈之后的出栈中是否是相反排序的呢?bca不满足

相关文章

  • 一道关于abcdef入栈出栈问题

    关于阿里的一道面试题,如果abcdef顺序入栈,那么下面不可能出现的出栈顺序是: 对于这样的题,也不是无规律可循,...

  • LeetCode-20 有效的括号

    题目:20. 有效的括号 难度:简单 分类:栈 解决方案:入栈出栈 今天我们学习第20题有效的括号,这是一道关于栈...

  • 递归累加数组

    入栈 5入栈 4入栈 3入栈 2入栈 1出栈 [1 0]出栈 [2 1 0]出栈 [3 2 1 0]出栈 [4 3...

  • 入栈出栈问题

    声明: 本总结仅为个人学习总结,以防止遗忘而作,不得转载和商用。给定无重复元素的两个等长数组,分别表述入栈序列和出...

  • 入栈出栈序列问题

    时隔将近三年,我又准备在简书上发文章了,初衷依然是将自己对一些算法的理解和感悟记录下来。今天开始动笔时看了一下自己...

  • 栈的简单Java实现

    栈栈的特点是先进后出,出栈、入栈都是在栈顶操作。

  • 汇编学习-入栈和出栈

    栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一个元素。栈顶的元素总是最后入栈...

  • 算法+数据结构+栈

    堆栈 JVM中的堆栈 入栈出栈。假设序列为abcdefg等, 如果abc 出栈。a,b,c没有入,或a入a出,b入...

  • 一些常见的算法题目

    合法的出栈序列 已知1至n的数字序列,按顺序入栈,每个数字入栈后即可出栈,也可在栈中停留,返回等待后面的数字入栈出...

  • 栈-N946-验证栈序列

    题目 概述:给定一个入栈序列和出栈序列,判断如果以入栈序列的顺序入栈,所给定的出栈序列的顺序是否是合理的 输入:入...

网友评论

    本文标题:一道关于abcdef入栈出栈问题

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