当前位置: 首页 > news >正文

LeetCode刷题---栈---946

验证栈序列

946. 验证栈序列 - 力扣(LeetCode)

题目

给定 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 的一个排列

自己的思路和代码

思路

        就是把pushed按照popped的方式进行入栈,如果popped的元素不在栈中,那么就将pushed所找元素之前的全部压入栈中,如果在栈中,那就观察栈顶元素是不是所找的元素,如果不是就返回false。

代码
class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> st;
        multiset<int> table;
        int i = 0;

        for(auto it : popped) {
            if(table.count(it)) {
                if(st.top() != it) {
                    return false;
                } else {
                    st.pop();
                    table.erase(it);
                }
            } else {
                for(i; i<pushed.size(); i++) {
                    if(pushed[i] != it) {
                        st.push(pushed[i]);
                        table.insert(pushed[i]);
                    } else {
                        ++i;
                        break;
                    }
                }
            }
        }
        return true;
    }
};

相关文章:

  • XXE漏洞:原理、危害与修复方法详解
  • AIP-153 导入和导出
  • Linux C++项目推荐:文件服务器+如何快速上手C++大项目
  • element组件教学,基础
  • Vue2+Element实现Excel文件上传下载预览
  • RAG(检索增强生成)原理、实现与评测方法探讨
  • 流匹配(Flow Matching)教程
  • 基于Spring Boot的供应商管理系统设计与实现(LW+源码+讲解)
  • AI杂谈(二)
  • 通过Sidecar模式实现服务注册、服务发现和负载均衡的分布式系统架构
  • 二分查找(数值范围)--- koko吃香蕉
  • 【转:由Salesforce的元数据驱动引发的联想】
  • X64 TF位和Single-step单步调试的研究
  • 渗透第二次作业
  • spring结合mybatis多租户实现单库分表
  • 洛谷-新二叉树python
  • Flink SQL怎么用?
  • 深度学习模型可视化:通俗易懂的全面解读
  • 基础算法整理
  • C++20 三路比较运算符 `<=>` 与 `operator==() = default` 的深度剖析及实际应用
  • 快评|印巴为何停火?已达成“一场胜利,各自表述”的效果
  • 巴基斯坦外长:印巴已同意立即停火
  • 邯郸一酒店办婚宴发生火灾,新郎母亲:饭没吃成酒店还要收费
  • 婚姻登记“全国通办”首日,上海虹口登记中心迎来“甜蜜高峰”
  • 2025中国南昌国际龙舟赛5月23日启幕,是历年来南昌举办的最高规格龙舟赛事
  • 江西暴雨强对流明显,专家:落雨区高度重叠,地质灾害风险高