题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106
class Solution {
public:
//用两个迭代器跟踪pushV和popV中的元素,向前遍历,若元素相等则同时往前走
//若不相等,先把pushV的元素先存入一个栈中,方便后续再跟popV中的元素比较
//最后如果栈是空的则说明符合出栈顺序
bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
stack<int> s;
auto it1=pushV.begin();
auto it2=popV.begin();
while(it1!=pushV.end())
{
if(*it1!=*it2)
{
s.push(*it1);
it1++;
}
else
{
it1++;
it2++;
}
while(!s.empty()&&s.top()==*it2)
{
it2++;
s.pop();
}
}
return s.empty();
}
};
查看6道真题和解析
360集团公司福利 405人发布