思路:
这道题感觉在面试中很容易被问到,因为的确感觉不是非常难。可以用模拟的思路来写。就是遍历压入序列不断压入栈,一旦栈非空且与弹出序列相同就进行压出,然后知道序列不同了,说明要进新元素了,或者全部消耗了;如果压入和弹出步对等,最终的结果就是栈非空!!!
class Solution {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
stack<int> stk; int i=0;
for(auto & nums:pushed){
stk.push(nums);
while(!stk.empty() && stk.top()==popped[i]){
stk.pop();
i++;
}
}
return stk.empty();
}
};