题目讲解
算法讲解
在这里就只需要模拟一下这个栈的出栈顺序即可:使用一个stack,每次让pushed里面的元素入栈,如果当前栈顶的元素等于poped容器中的当前元素,因此就需要让栈顶元素出栈,poped的遍历位置往后移动一位
class Solution {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
stack<int>st;
int i = 0;
for(auto& num : pushed)
{
st.push(num);
while(!st.empty() && st.top() == popped[i])
{
st.pop();
i++;
}
}
return st.empty();
}
};