0
点赞
收藏
分享

微信扫一扫

LeetCode 剑指 Offer 31. 栈的压入、弹出序列

外贸达人小峻先森 2022-04-19 阅读 69
leetcode

具体思路:

栈模拟问题;

两种思路:

  1. 自己想的是根据poped进行遍历枚举,逻辑比较复杂;
  2. 优秀题解的是直接队pushed进行压栈,同时对比栈顶元素,这样更直接一点;

具体代码:

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int>st;
        int n=popped.size();
        int index=0;
        int pin=0;
        while(index<n){
            if(!st.empty()&&st.top()==popped[index]){
                index++;
                st.pop();
                continue;
            }
            while(pin<pushed.size()&&pushed[pin]!=popped[index]){
                st.push(pushed[pin++]);
            }
            if(pin==pushed.size())
                return false;
            index++;
            pin++;
        }
        return true;
    }
};
举报

相关推荐

0 条评论