现有N个元素1,2...N顺序入栈,给出一个出栈序列a1, a2...an判断此出栈序列是否正确,游戏规则是:元素必须后进先出
首先,我们将出栈顺序保存在一个数组target[N]中,用一个变量current来模拟入栈(当然,要建立一个栈空间stack<int>s),num来表示出栈顺序的当前编号,current和num都初始化为1
那么,下面应该这样来处理
1. 如果当前出栈元素target[num]与模拟的当前入栈元素current相等,num++, current++
2.否则,如果当前模拟的入栈空间不为空且栈顶元素与出栈数组的第一个元素相等,那么就让模拟的入栈空间出栈,出栈的当前顺序num++
3.否则,如果当前模拟的入栈元素还没超过n的话,那么把当前元素压入模拟的入栈空间s,并且为下一次的入栈做准