Day8: 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

news2024/12/22 18:33:46


题目232. 用栈实现队列 - 力扣(LeetCode)

class MyQueue {
public:
   
    MyQueue() {}

    void push(int x) { // 出栈
        input.push(x);
    }

    int pop() {
        // 如果出栈为空,把入栈元素全都转移到出栈
        if (output.empty()) {
            while (!input.empty()) {
                int itop = input.top();
                output.push(itop);
                input.pop();
            }
        }
        // pop出栈
        int top = output.top();
        output.pop();
        return top;
    }

    int peek() {
        // 把出栈元素转移到入栈
        if (output.empty()) {
            while (!input.empty()) {
                int itop = input.top();
                output.push(itop);
                input.pop();
            }
        }
        return output.top();
    }

    bool empty() { return input.empty() && output.empty(); }
private:
    stack<int> input; // 入栈5
    stack<int> output;
};
/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue* obj = new MyQueue();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->peek();
 * bool param_4 = obj->empty();
 */

题目225. 用队列实现栈 - 力扣(LeetCode)

class MyStack {
public:
    MyStack() {

    }
    
    void push(int x) {
        mainq.push(x);
    }
    
    int pop() {
        //把除了最新的那个元素以外,全都放到备份队列中
        while(mainq.size()>1)
        {
            backupq.push(mainq.front());
            mainq.pop();
        }
        int pop=mainq.front();
        mainq.pop();
        //把备份队列放回主序列
        while(!backupq.empty())
        {
            mainq.push(backupq.front());
            backupq.pop();
        }
        return pop;
    }
    
    int top() {
          //把除了最新的那个元素以外,全都放到备份队列中
        while(mainq.size()>1)
        {
            backupq.push(mainq.front());
            mainq.pop();
        }
        int top=mainq.front();
        backupq.push(mainq.front());
        mainq.pop();
        //把备份队列放回主序列
        while(!backupq.empty())
        {
            mainq.push(backupq.front());
            backupq.pop();
        }
        return top;
    }
    
    bool empty() {
        return mainq.empty();

    }
    private:
    queue<int> mainq;//主队列
    queue<int> backupq;//备份队列
};

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack* obj = new MyStack();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->top();
 * bool param_4 = obj->empty();
 */

题目20. 有效的括号 - 力扣(LeetCode)

class Solution {
public:
    bool isValid(string s) {

        //用栈来解答
        stack<char> st;
        int i=0;
        while(i<s.size())
        {
            if(s[i]=='('||s[i]=='['||s[i]=='{')
            {
                if(s[i]=='(')
                {
                    st.push(')');
                }
                if(s[i]=='[')
                {
                    st.push(']');
                }
                if(s[i]=='{')
                {
                    st.push('}');
                }
            }else
            {
                if(i==0||st.empty())
                {
                    return false;
                }
                char top=st.top();
                if(top!=s[i])
                {
                    return false;
                }else
                {
                    st.pop();
                }
            }
            i++;
        }
        if(st.empty())
        {
            return true;
        }else
        {
            return false;
        }


    }
};

题目1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)

class Solution {
public:
    string removeDuplicates(string s) {
        stack<char> st;
        int i=0;
        while(i<s.size())
        {
            if(st.empty())
            {
                st.push(s[i]);
            }else
            {
                int top=st.top();
                if(top==s[i])
                {
                    st.pop();
                }else
                {
                    st.push(s[i]);
                }
                
            }
            i++;
        }
        int size=st.size();
        string res(size,0);
        for(int i=size-1;i>=0;i--)
        {
            res[i]=st.top();
            st.pop();
        }
        return res;

    }
};

最后

栈实现队列,一个出栈一个入栈

队列实现栈,一个主队列一个辅助队列

有效括号,和删除字符串相邻重复项,适合用栈来解决,栈适合解决判断前一个元素是否满足条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第52课-语音控制机器人

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第52课-语音控制机器人 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

彭涛 | 2024年6月小结

6月是忙碌的一个月&#xff0c;换办公室&#xff0c;买家具&#xff0c;群发售&#xff0c;新小伙伴入职等等 1、出海小报童 这个月时间主要做小报童&#xff0c;从刚开始设计内容大纲&#xff0c;到写作&#xff0c;后续拉新花费了大量时间。 比如我们要去调研同行&#xff0c…

新能源行业必会基础知识-----电力市场概论笔记-----中长期合约电力市场

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 合约市场2. 双边交易3. 集中交易4. 挂牌交易及互联网中长期电力交易平台5. 中长期交易的优势 1. 合约市场 什么是合约市场 …

从选题到定稿:软考高级系统架构设计师论文写作全攻略

一、论文考试概述 软考系统架构设计师考试的最后一门是论文写作&#xff0c;安排在下午进行&#xff0c;时长两小时&#xff0c;要求撰写约3000字的论文&#xff0c;以45分为及格线。时间紧迫&#xff0c;不容过多犹豫与思考&#xff0c;因此需迅速选定并着手撰写。论文题目通…

【数据结构】C语言实现二叉树

C语言实现二叉树 导读一、二叉树的数据类型二、二叉树的初始化2.1 补充知识点——传址传参2.2 补充知识点——指针传参 三、二叉树的创建3.1 通过添加结点创建BST3.2 通过结点序列创建二叉树3.2.1 由遍历序列手算构建二叉树3.2.1.1 构建步骤3.2.1.2 习题演练3.2.1.3 小结 3.2.2…

在C#/Net中使用Mqtt

net中MQTT的应用场景 c#常用来开发上位机程序&#xff0c;或者其他一些跟设备打交道比较多的系统&#xff0c;所以会经常作为拥有数据的终端&#xff0c;可以用来采集上传数据&#xff0c;而MQTT也是物联网常用的协议&#xff0c;所以下面介绍在C#开发中使用MQTT。 安装MQTTn…

yolov5实例分割跑通以及C#读取yolov5_Seg实例分割转换onnx进行检测部署

一、首先需要训练yolov5_seg的模型&#xff0c;可以去网上学习&#xff0c;或者你直接用我的&#xff0c; 训练环境和yolov5—7.0的环境一样&#xff0c;你可以直接拷过来用。 yolov5_seg算法 链接&#xff1a;https://pan.baidu.com/s/1m-3lFWRHwg5t8MmIOKm4FA 提取码&…

第十四届蓝桥杯省赛C++B组D题【飞机降落】题解(AC)

解题思路 这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列&#xff0c;我们可以使用深度优先搜索&#xff08;DFS&#xff09;的方法&#xff0c;尝试所有可能的降落顺序。 首先&#xff0c;我们需要理解题目中的条件。每架…

tcpdump命令详解及使用实例

1、抓所有网卡数据包&#xff0c;保存到指定路径 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump简介 tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供and、or、not等逻辑语句来去掉无用的信…

Python中爬虫编程的常见问题及解决方案

Python中爬虫编程的常见问题及解决方案 引言&#xff1a; 随着互联网的发展&#xff0c;网络数据的重要性日益突出。爬虫编程成为大数据分析、网络安全等领域中必备的技能。然而&#xff0c;爬虫编程不仅需要良好的编程基础&#xff0c;还需要面对着各种常见的问题。本文将介绍…

Qt中文乱码如何解决

目录 一、使用建议 二、其它设置 一、使用建议 Qt对中文的支持不是很友好&#xff0c;使用QtCreator会出现各种乱七八糟的中文代码问题&#xff0c;如何处理这种问题&#xff1f; &#xff08;1&#xff09;粘贴别人的代码时&#xff0c;先在记事本里粘贴一遍&#xff0c;再…

【Python机器学习】gradio库(快速创建简单的 Web 界面来演示机器学习模型)

文章目录 1. 主要特点2. 安装 Gradio3. 基于tensorflow的例子4. 基于Pytorch的例子4.1 步骤4.2 代码4.3 使用说明Gradio 是一个 Python 库,用于快速创建简单的 Web 界面来演示机器学习模型。它被广泛用于各种应用,如音频、文本、图像处理和更多。Gradio 使得任何人都可以轻松…

深圳比创达电子EMC|EMC电磁兼容性行业:推动电子产品向更高发展

随着科技的飞速发展&#xff0c;电子产品在我们的日常生活中无处不在&#xff0c;从智能手机到智能家居&#xff0c;从医疗设备到工业自动化&#xff0c;这些设备的普及和更新换代对电磁兼容性&#xff08;EMC&#xff09;提出了更高的要求。 一、EMC电磁兼容性行业的概述 EM…

深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家&#xff01; 预测系统的分类指标(精确率、召回率和 F1 值) 简介 让我们来谈谈预测系统的分类指标以及对精确率、召回…

气象站的气象工具都有哪些呢?

气象站&#xff0c;作为观测和记录天气现象的重要基地&#xff0c;拥有一系列专业的气象工具。这些工具不仅能够帮助我们深入了解大气的运动规律&#xff0c;还能为天气预报、气候研究等提供宝贵的数据支持。 风速风向仪也是气象站重要的工具。它通常由风向变送器和风速变送器组…

【数据结构与算法】堆排序算法原理与实现:基于堆实现的高效排序算法

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 堆排序的简介 堆排序的特点 二、堆的概念 三、堆排序算法的原理 四、堆…

智能技术【机器学习】总结

文章目录 第一部分 优化第二部分 模型第一章 神经网络&#xff08;MLP, BP, CNN, GNN, and Attention&#xff09;1.1 神经网络基础1.1.1 高次非线性函数1.1.2 感知器与神经网络1.1.3 联结主义模型1.1.4 动机——为什么每个人都在谈论深度学习&#xff1f;1.1.5 背景1.1.6 神经…

【Android面试八股文】什么是ANR?如何分析和定位ANR?如何避免ANR?

文章目录 一、ANR概述二、触发ANR的主要场景三、Android四大组件中的潜在的ANR风险五、避免ANR的实践建议六、ANR的产生原因与出现的场景6.1 原因:6.2 出现场景:七、ANR的定位与分析7.1. ANR分析思路——traces7.2 ANR其他分析思路与相关日志7.2.1 分析logcat思路7.2.2 分析k…

机器学习:分类模型的评估指标

在机器学习中&#xff0c;评估分类模型的性能是至关重要的环节。选择合适的评估指标能够帮助我们全面了解模型的表现&#xff0c;尤其是在不同的数据分布和应用场景下。下面详细介绍一些常用的分类模型评估指标。 混淆矩阵&#xff08;confusion matrix&#xff09;是模式识别…

【Linux】TCP协议【下二】{流量控制/滑动窗口/延迟应答/捎带应答/拥塞控制}

文章目录 1.流量控制--利用“窗口大小”字段协商数据量大小1. 1第一次的时候&#xff0c;怎么保证发送数据量是合理的1.2第三次握手ack的时候&#xff0c;可以携带数据&#xff01;1.3流量控制&#xff0c;属于可靠性还是属于效率&#xff1f; 2.滑动窗口--利用滑动窗口解决批量…