剑指 Offer 31. 栈的压入、弹出序列(中等)

发布时间 2023-08-02 21:26:17作者: 孜孜不倦fly

题目:

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {      //pushed里的每一个元素都必定经过入栈和出栈的操作,最后栈为空才行
        stack<int> st;
        for(int i=0,j=0;i<pushed.size();i++){           //遍历pushed数组,每一个元素都进行一次入栈操作
            st.push(pushed[i]);
            while(!st.empty()&&st.top()==popped[j]){    //遍历popped数组。当前popped元素与栈顶元素相等时进行出栈操作,代表该元素成功正常进行了出入栈操作
                st.pop();                               
                j++;
            }                                           //若无法出栈,则继续入栈
        }
        return st.empty();                              //最后栈为空才行
    }
};

以上代码转自力扣官方题解