【C++算法】69.栈_验证栈序列

文章目录


题目链接:

946. 验证栈序列


题目描述:


解法

直接用栈来验证栈序列。


C++ 算法代码:

cpp 复制代码
class Solution 
{
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) 
    {
        // 验证栈序列算法
        // 基本思路:模拟栈的操作,看是否能够按照给定的顺序实现出栈
        
        stack<int> st;        // 用栈来模拟入栈和出栈操作
        int i = 0;            // 当前处理的popped数组的索引
        int n = popped.size(); // popped数组的长度
        
        // 遍历pushed数组中的每个元素
        for(auto x : pushed)
        {
            st.push(x);  // 将当前元素入栈
            
            // 尝试执行出栈操作:只要栈顶元素等于当前需要出栈的元素,就执行出栈
            while(st.size() && st.top() == popped[i])
            {
                st.pop();  // 弹出栈顶元素
                i++;       // 移动到popped数组的下一个元素
            }
        }
        
        // 如果所有元素都能正确出栈,则i应该等于n
        return i == n;
    }
};
相关推荐
萝卜白菜。1 分钟前
TongWeb7.0相同的类指明加载顺序
开发语言·python·pycharm
wb043072011 分钟前
使用 Java 开发 MCP 服务并发布到 Maven 中央仓库完整指南
java·开发语言·spring boot·ai·maven
Rsun045513 分钟前
设计模式应该怎么学
java·开发语言·设计模式
汀、人工智能7 分钟前
[特殊字符] 第2课:字母异位词分组
数据结构·算法·链表·数据库架构··字母异位词分组
Tanecious.13 分钟前
蓝桥杯备赛:Day3-P1918 保龄球
c++·蓝桥杯
良木生香20 分钟前
【C++初阶】:C++类和对象(下):构造函数promax & 类型转换 & static & 友元 & 内部类 & 匿名对象 & 超级优化
c语言·开发语言·c++
5系暗夜孤魂25 分钟前
系统越复杂,越需要“边界感”:从 Java 体系理解大型工程的可维护性本质
java·开发语言
小O的算法实验室39 分钟前
2026年SEVC,面向主动成像卫星任务规划问题的群体智能与动态规划混合框架,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
网安INF1 小时前
数据结构第一章复习:基本概念与算法复杂度分析
数据结构·算法
无巧不成书02181 小时前
C语言零基础速通指南 | 1小时从入门到跑通完整项目
c语言·开发语言·编程实战·c语言入门·零基础编程·c语言速通