剑指 Offer 31. 栈的压入、弹出序列 - 力扣(LeetCode)
声明一个栈: 把压栈数组的元素按顺序压入,当栈顶元素和出栈数组的第一个元素相同,则将该元素弹出,出栈列表指针后移并继续判断,最后判断栈是否为空即可。
class Solution {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
stack<int> s;
int i = 0;
for(const auto &c : pushed){
s.push(c);
while(i < popped.size() && !s.empty() && s.top() == popped[i]){
s.pop();
++i;
}
}
return s.empty();
}
};