LeetCode题目链接
https://leetcode.cn/problems/implement-queue-using-stacks/
https://leetcode.cn/problems/implement-stack-using-queues/description/
https://leetcode.cn/problems/valid-parentheses/description/
https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/description/

题解
232.用栈实现队列
难度不大。

225.用队列实现栈
与上题类似。

20.有效的括号
有提示用栈了,不然可能不知道怎么写吧。

1047.删除字符串中的所有相邻重复项
用栈的思想真是太巧妙了,完全不知道怎么写。用栈非常简单。
学到了当栈里存的字符串是相反的时,只要reverse一下就可以了,代码如下:

reverse (result.begin(), result.end());

代码

//232.用栈实现队列
#include <iostream>
#include <stack>
using namespace std;class MyQueue {
public:MyQueue() {// 不需要在构造函数中重新声明栈,应该在类中声明它们}void push(int x) {while (!s1.empty()) {int tmp = s1.top();s2.push(tmp);s1.pop();}s1.push(x);while (!s2.empty()) {int tmp = s2.top();s1.push(tmp);s2.pop();}}int pop() {int result = s1.top();s1.pop();return result;}int peek() {return s1.top();}bool empty() {if (s1.empty() && s2.empty()) return true;else return false;}
private:stack<int> s1, s2;
};int main() {MyQueue obj;obj.push(1);obj.push(2);cout << obj.peek() << endl;cout << obj.pop() << endl;cout << obj.empty() << endl;return 0;
}
//225.用队列实现栈
#include <iostream>
#include <queue>
using namespace std;class MyStack {
public:MyStack() {}void push(int x) {while (!q1.empty()) {q2.push(q1.front());q1.pop();}q1.push(x);while (!q2.empty()) {q1.push(q2.front());q2.pop();}}int pop() {int result = q1.front();q1.pop();return result;}int top() {return q1.front();}bool empty() {if (q1.empty() && q2.empty()) return true;else return false;}
private:queue<int> q1, q2;
};int main() {MyStack obj;obj.push(1);obj.push(2);cout << obj.top() << endl;cout << obj.pop() << endl;cout << obj.empty() << endl;return 0;
}
//20.有效的括号
#include <iostream>
#include <stack>
using namespace std;class Solution {
public:bool isValid(string s) {stack<char> st;for (char c : s) {if (c == '(' || c == '[' || c == '{') st.push(c);else {if (st.empty()) return false;if ((c == ')' && st.top() == '(') || (c == ']' && st.top() == '[') || (c == '}' && st.top() == '{'))st.pop();else return false;}}if (!st.empty()) return false;return true;}
};int main() {Solution s;string str = "]";printf("%d", s.isValid(str));return 0;
}
//1047.删除字符串中的所有相邻重复项
#include <iostream>
#include <stack>
#include <string>
using namespace std;class Solution {
public:string removeDuplicates(string s) {stack<char> st;string result, tmp;for (char c : s) {if (st.empty() || st.top() != c) st.push(c);else if (st.top() == c) st.pop();}while (!st.empty()) {tmp += st.top();st.pop();};for (int i = tmp.size() - 1;i >= 0;i--) {result += tmp[i];}return result;}
};int main() {string str = "abbaca";Solution s;cout << s.removeDuplicates(str) << endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp .Net Core 系列:Asp .Net Core 集成 Hangfire+MySQL

在 .NET 或 .NET Core 应用中&#xff0c;若需在不依赖 Windows 服务、独立进程的前提下实现后台处理&#xff0c;Hangfire 是最成熟、简单的方案之一 —— 它可直接嵌入现有应用&#xff08;如 ASP.NET Core Web 应用&#xff09;&#xff0c;无需额外部署&#xff0c;同时提供…

网站漏洞扫描要怎么处理?

在网络安全领域&#xff0c;网站漏洞是黑客攻击的重要突破口&#xff0c;而网站漏洞扫描能及时发现这些隐患。但很多小白在完成漏洞扫描后&#xff0c;不清楚后续该如何处理&#xff0c;导致漏洞一直存在&#xff0c;给网站安全埋下风险。下面从准备工作、处理步骤、验证维护等…

淘宝RecGPT:通过LLM增强推荐

导论背景 (Background)​​推荐系统的核心挑战​​&#xff1a;怎么 准确推断 用户行为背后快速变化的真实意图&#xff0c;以实现用户、商户和平台的三赢。​​现有方法的局限性​​&#xff1a;传统的基于历史日志共现模式&#xff08;“从点击学习点击”&#xff09;的模型&…

【Go系统编程】07 网络化IPC:Go的王牌——Socket编程

大家好&#xff0c;我是Tony Bai。欢迎来到我们《Go 系统编程》专栏的最后一讲。在过去的旅程中&#xff0c;我们探索了管道、消息队列、共享内存等一系列强大的 IPC 机制。它们各有所长&#xff0c;但都有一个共同的、致命的局限性&#xff1a;它们都只能在同一台物理机上工作…

claude code使用小窍门

视频地址 B站 1 /init 在项目最开始的时候&#xff0c;使用/init可以将项目通读一遍。cc会将学习到的关于项目的知识都保存到CLAUD.MD文件中 2、 /compact 用来压缩对话的上下文&#xff0c;claude会将之前的一些乱七八糟或者重复的对话删除压缩&#xff0c;有利于提高AI的…

The learning process of Decision Tree Model|决策树模型学习过程

----------------------------------------------------------------------------------------------- 这是我在我的网站中截取的文章&#xff0c;有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn&#xff0c;这里还有很多有关计算机的知识&#xff0c;欢迎进行留言或…

期货盘后空开是认购期权行权?

本文主要介绍期货盘后空开是认购期权行权&#xff1f;期货盘后空开与认购期权行权是两个独立的概念&#xff0c;无直接关联&#xff0c;需从交易机制、操作逻辑及市场规则三方面区分。期货盘后空开是认购期权行权&#xff1f;1. 定义与交易属性期货盘后空开&#xff1a;属于期货…

ESP32 I2S音频总线学习笔记(七):制作一个录音播放器

简介 上一篇我们利用I2S输出DIY了一个蓝牙音箱简单玩了一下&#xff0c;本篇我们继续来看代码。前面几篇文章我们分别介绍了I2S输入&#xff0c;I2S输出&#xff0c;以及WAV文件格式的相关内容&#xff0c;那我们就可以根据所学到的&#xff0c;制作一个录音机&#xff0c;具体…

PyTorch 动态图的灵活性与实用技巧

PyTorch 以其动态计算图&#xff08;Dynamic Computation Graph&#xff09;而闻名&#xff0c;这赋予了它极高的灵活性和易用性&#xff0c;使其在研究和实际应用中都备受青睐。与TensorFlow 1.x的静态图&#xff08;需要先定义图结构&#xff0c;再运行&#xff09;不同&…

#C语言——刷题攻略:牛客编程入门训练(十一):攻克 循环控制(三),轻松拿捏!

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言刷题合集》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"代码行数决定你的下限&#xff0c;算法思维决定你的上限。" 前言&#xff1a;在学习…

复杂PDF文档结构化提取全攻略——从OCR到大模型知识库构建

在学术研究、金融分析、法律合同、工程设计等众多领域&#xff0c;PDF文档已成为信息存储与传递的重要载体。然而&#xff0c;面对包含复杂表格、公式、图表、手写批注、多栏排版等元素的PDF&#xff0c;传统工具往往难以准确、完整地提取内容。这不仅影响信息利用效率&#xf…

HttpClient、OkHttp 和 WebClient

HttpClient、OkHttp 和 WebClient 是 Java 生态中常见的 HTTP 客户端&#xff0c;它们在设计理念、异步能力、性能等方面有所不同。以下是它们的详细对比&#xff1a;1. 概述客户端介绍Apache HttpClient传统同步 HTTP 客户端&#xff0c;功能丰富&#xff0c;历史悠久&#xf…

书籍成长书籍文字#创业付费杂志《财新周刊》2025最新合集 更33期

免费访问地址 https://isharehubs.com/article/2025-33-26c27ee5bb9180cdafc5efbec9545ac5 资源信息 付费杂志《财新周刊》2025最新合集 更33期 《财新周刊》2025 最新合集&#xff08;更至 33 期&#xff09;重磅上线&#xff0c;聚焦年度热点与结构性变化&#xff0c;从监…

用python的socket写一个局域网传输文件的程序

局域网传输文件是最最常用的功能&#xff0c;我参考https://www.jb51.net/python/345837qrz.htm这篇文章&#xff0c;复制粘贴&#xff0c;开发了一个。但发现进度条没有用&#xff0c;也没有显示传输用时和传输速度的功能&#xff0c;于是我改写了代码&#xff0c;使它实现这个…

深度剖析Linux内核无线子系统架构

文章目录1、资料快车2、目录介绍2、术语3、Linux无线子系统概述4、内核无线子系统框架1&#xff09;认识内核无线子系统中的三个软件框架2、无线网络子系统框架3、Android WIFI Management框架1&#xff09;fullMAC和softMAC是什么&#xff1f;2&#xff09;fullmac对比softmac…

unity UGUI 鼠标画线

using UnityEngine; using UnityEngine.EventSystems; using System.Collections.Generic; using UnityEngine.UI; /* 使用方法&#xff1a; 在场景中新建一个空的 GameObject&#xff08;右键 -> UI -> 空对象&#xff0c;或直接创建空对象后添加 RectTransform 组件&am…

JSP疫情物资管理系统jbo2z--程序+源码+数据库+调试部署+开发环境

本系统&#xff08;程序源码数据库调试部署开发环境&#xff09;带论文文档1万字以上&#xff0c;文末可获取&#xff0c;系统界面在最后面。系统程序文件列表开题报告内容一、选题背景与意义新冠疫情的爆发&#xff0c;让医疗及生活物资的调配与管理成为抗疫工作的关键环节。传…

Mem0 + Milvus:为人工智能构建持久化长时记忆

作者&#xff1a;周弘懿&#xff08;锦琛&#xff09; 背景 跟 ChatGPT 对话&#xff0c;比跟真人社交还累&#xff01;真人好歹能记住你名字吧&#xff1f; 想象一下——你昨天刚把沙发位置、爆米花口味、爱看的电影都告诉了 ChatGPT&#xff0c;而它永远是那个热情又健忘的…

前端架构-CSR、SSR 和 SSG

将从 定义、流程、优缺点和适用场景 四个方面详细说明它们的区别。一、核心定义缩写英文中文核心思想CSRClient-Side Rendering客户端渲染服务器发送一个空的 HTML 壳和 JavaScript bundle&#xff0c;由浏览器下载并执行 JS 来渲染内容。SSRServer-Side Rendering服务端渲染服…