C++常规思路 借用栈结构模拟一遍
栈的压入、弹出序列
http://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
脑子怎么思考这里就怎么写 按照所给的入栈序列操作遍历入栈 如遇到栈顶的元素和出栈序列的当前元素相等时 则弹出栈顶元素且出栈序列的当前位置往后移动 入栈序列遍历完毕 如果栈为空且出栈序列也遍历完毕 则是该压栈序列的弹出序列,其他情况皆不是。
class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { stack<int>s; int pos=0; for(int i=0;i<pushV.size();i++) { s.push(pushV[i]); while(pos<popV.size()&&s.top()==popV[pos]) { s.pop(); pos++; } } return (pos==popV.size()&&s.empty())?true:false; } };