题目:
思路:
1.首先声明辅助栈,
2。然后循环,在循环过程中将pushV的元素一个一个压入辅助站,
如果pop V的栈顶元素和辅助栈的栈顶元素一样则出栈
即 如果压入的元素不在栈顶则入栈,否则的话出栈
3.如果所有元素压入栈了还没有找到可以出栈的元素即辅助站现在不为空,则说明该序列不是
代码:
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
//构建一个辅助栈
vector<int> temp;
//i指在pushV中的位置,j指在popV中的位置
for(int i=0,j=0;i<pushV.size();)
{
temp.push_back(pushV[i++]);//push_bach()方法是容器的,指在后一位添加元素
while(j<popV.size()&&temp.back()==popV[j])//temp.back是指首元素
{
temp.pop_back();//指删除
j++;
}
}
return temp.empty();
}
};