class Solution {
public:
bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
// write code here
//定义一个栈
stack<int> st;
//这个标记pushV的下标
int pushi=0;
//popV的下标
int popi=0;
//循环遍历,当所有元素都没有压入栈中时,则继续循环
while(pushi<pushV.size())
{
//将元素压入
st.push(pushV[pushi]);
pushi++;
//如果栈不为空,则判断当前st的栈顶是否和弹出栈的容器中的顺序是否相同,
//只有相同时才弹出
while(!st.empty()&&st.top()==popV[popi])
{
st.pop();
popi++;
}
}
//如果最后的栈全部都弹出了,说明弹出序列正确
return st.empty();
}
};
刷题_栈的压入、弹出序列
最新推荐文章于 2024-06-03 10:27:37 发布