思路:这个问题,很自然得会想到把第一个序列的元素依次入栈,然后与第二个序列中的元素中的顺序出栈。
我们在判断一个序列是不是栈的弹出序列有以下思路:如果下一个弹出的数字刚好是栈顶数字,那么入栈元素直接出栈。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的元素压入栈,直到把下一个需要弹出的元素压入栈顶为止。如果所有的元素都入栈了仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列。
实现代码:
package cn.csu;
import java.util.Stack;
public class StackIsPop {
/**
* 输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序。
* 假设压入栈