每日OJ题_栈⑤_力扣946. 验证栈序列

目录

力扣946. 验证栈序列

解析代码


力扣946. 验证栈序列

946. 验证栈序列

难度 中等

给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。

示例 1:

输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出:true
解释:我们可以按以下顺序执行:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1

示例 2:

输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
输出:false
解释:1 不能在 2 之前弹出。

提示:

  • 1 <= pushed.length <= 1000
  • 0 <= pushed[i] <= 1000
  • pushed 的所有元素 互不相同
  • popped.length == pushed.length
  • popped 是 pushed 的一个排列
class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {

    }
};

解析代码

        思路就是用栈来模拟进出栈的流程。 一直让元素进栈,进栈的同时判断是否需要出栈。当所有元素模拟完毕之后,如果栈中还有元素,那么就是一个非法的序列。否则就是一个合法的序列。

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        if(pushed.size() != popped.size())
            return false;
        stack<int> st;
        int i = 0;
        for(auto& e : pushed)
        {
            st.push(e); // 不匹配就持续入,匹配就持续出
            while(!st.empty() && st.top() == popped[i])
            {
                st.pop();
                ++i;
            }
        }
        // return i == popped.size();
        return st.empty();
    }
};

相关推荐

  1. 每日OJ_⑤_946. 验证序列

    2024-03-28 12:40:02       43 阅读
  2. [leetcode] 946. 验证序列

    2024-03-28 12:40:02       37 阅读
  3. 每日OJ_②_844. 比较含退格的字符串

    2024-03-28 12:40:02       50 阅读
  4. 每日 --- 用实现队列[][Go]

    2024-03-28 12:40:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 12:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 12:40:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 12:40:02       82 阅读
  4. Python语言-面向对象

    2024-03-28 12:40:02       91 阅读

热门阅读

  1. Hive常用函数_16个时间日期处理

    2024-03-28 12:40:02       45 阅读
  2. MySQL中 in和exists的用法和区别

    2024-03-28 12:40:02       36 阅读
  3. Linux创建用户,并安装anaconda3避坑指南

    2024-03-28 12:40:02       37 阅读
  4. MyBatis的核心配置文件

    2024-03-28 12:40:02       41 阅读
  5. 洛谷 P1923 求第k小的数

    2024-03-28 12:40:02       41 阅读
  6. Redis为什么在6.0之后变成了多线程

    2024-03-28 12:40:02       37 阅读
  7. 在VUE页面调用Extjs中定义的方法

    2024-03-28 12:40:02       40 阅读