中间有动态图展示过程。
01 题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,第二个表示栈的弹出顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
例如:序列1,2,3,4,5是栈的压入顺序,4,5,3,2,1是该栈的弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
02 解释
1.入栈顺序 1,2,3,4,5。
出栈顺序,4,5,3,2,1
解题过程,我们需要用一个辅助栈,按照出栈顺序把入栈数值压入弹出一遍,对比弹出顺序是否与出栈相等
(1)出栈元素4,那么4之前所有的入栈元素1,2,3,4都已经入辅助栈。(1,2,3不先入栈,4怎么入栈,也没法出栈了),辅助栈结果,1,2,3,4。对比辅助栈4和出栈元素4相等弹出。
入栈顺序 1,2,3,4,5。
出栈顺序4,5,3,2,1
辅助栈元素ÿ