vector 容器序列
stack 栈
算法课老师没讲代码,然后leetcode上更加骚的东西
bool validateStackSequences(vector<int>& pushV, vector<int>& popV) {
if(popV.empty() && pushV.empty()) return 1;
if(popV.empty() || pushV.empty()) return 0;
int pushOrd = 0, popOrd = 0; // 遍历记录
stack<int> V;
for (pushOrd = 0, popOrd = 0; pushOrd < pushV.size(); ++pushOrd) // 按顺序遍历
{ V.push(pushV[pushOrd]); // 入栈
while (!V.empty() &&popV[popOrd] == V.top()) // 如果栈顶元素等于出栈元素
{ V.pop(); // 出栈
popOrd += 1; // 向后移 } }
// 全部入栈完毕,如果栈为空,直接返回
while (!V.empty() && V.top() == popV[popOrd]) { V.pop(); popOrd += 1; } return V.empty(); }