栈的压入顺序和弹出顺序匹配问题
栈的压入、弹出序列
http://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
方法:利用辅助栈模拟压栈过程
遍历压栈vector,判断当前元素是否与弹出vector,不相等就压栈,继续向前便利压栈vector,但是弹出vector不动;
相等就说明当此有出栈弹出,压入栈和弹出vector均向前一步,同时对之前已经压入栈的元素进行判断是否有弹出;
最后判断辅助栈是否为空?是:否;
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
stack<int> stk;
int i = 0, j = 0;
while(i < pushV.size()){
if(pushV[i] != popV[j]){</int></int></int>
stk.push(pushV[i]);
++i;
}
else{
++j;
++i;
while(!stk.empty() && stk.top() == popV[j]){
stk.pop();
++j;
}
}
}
return stk.empty();
}};


