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

代码随想录算法训练营43期 | Day 10——栈与队列part1

代码随想录算法训练营

  • 代码随想录算法训练营43期 | Day 10
  • 232.用栈实现队列
  • 225. 用队列实现栈
  • 20. 有效的括号
  • 1047.删除字符串中的所有相邻重复项

代码随想录算法训练营43期 | Day 10

232.用栈实现队列

class MyQueue {
public:stack<int> sIn;stack<int> sOut;MyQueue() {}void push(int x) {sIn.push(x);}int pop() {if(sOut.empty()){while(!sIn.empty()){sOut.push(sIn.top());sIn.pop();}}int result = sOut.top();sOut.pop();return result;}int peek() {int res = this->pop();sOut.push(res);return res;}bool empty() {return sIn.empty()&&sOut.empty();}
};

225. 用队列实现栈

class MyStack {
public:queue<int> deq1;MyStack() {}void push(int x) {deq1.push(x);}int pop() {int size  = deq1.size();size--;while(size--){deq1.push(deq1.front());deq1.pop();}int result = deq1.front();deq1.pop();return result;}int top() {int size = deq1.size();size--;while (size--){// 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部deq1.push(deq1.front());deq1.pop();}int result = deq1.front(); // 此时获得的元素就是栈顶的元素了deq1.push(deq1.front());    // 将获取完的元素也重新添加到队列尾部,保证数据结构没deq1有变化deq1.pop();return result;}sbool empty() {return deq1.empty();}
};

20. 有效的括号

需要解决的三种括号问题

  1. 左括号多
  2. 右括号多
  3. 括号不匹配
 bool isValid(string s) {if (s.size() % 2 != 0) return false; // 如果s的长度为奇数,一定不符合要求stack<char> st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '{') st.push('}');else if (s[i] == '[') st.push(']');// 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号 return false// 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。所以return falseelse if (st.empty() || st.top() != s[i]) return false;else st.pop(); // st.top() 与 s[i]相等,栈弹出元素}// 第一种情况:此时我们已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false,否则就return truereturn st.empty();}

1047.删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
示例:
输入:“abbaca”
输出:“ca”
解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。

 class Solution {
public:string removeDuplicates(string S) {//定义一个栈stack<char> st;//遍历字符串Sfor(auto s:S){//判断 若当前遍历元素 s 和栈顶元素 st.top() 相同则出栈,不同则入栈//注意:需判断栈是否为空if(st.empty()||s!=st.top()){st.push(s);}else{st.pop();}}//遍历结束,栈中存放字符为非重复项结果string result="";while(!st.empty()){result += st.top();st.pop();}//此时result顺序是反的,需翻转全部字符reverse(result.begin(),result.end());return result;}
};

相关文章:

代码随想录算法训练营43期 | Day 10——栈与队列part1

代码随想录算法训练营 代码随想录算法训练营43期 | Day 10232.用栈实现队列225. 用队列实现栈20. 有效的括号1047.删除字符串中的所有相邻重复项 代码随想录算法训练营43期 | Day 10 232.用栈实现队列 class MyQueue { public:stack<int> sIn;stack<int> sOut;My…...

Java中常用的设计模式

一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程…...

leetcode 11-20(2024.08.15)

立个flag&#xff0c;1-100题每天分配10题&#xff0c;不会就先空着&#xff08;7&#xff09;。 1. 11&#xff1a;盛最多水的容器 class Solution:def maxArea(self, height: List[int]) -> int:res 0left 0right len(height) - 1while left < right:area (right…...

C语言整数溢出的问题

目录 补漏&#xff1a; 问题展现 解析 C的解决方案 补漏&#xff1a; 昨天我在开头提到-1的二进制如何表示&#xff0c;我在这里简单分析一下。 首先我们要明白有符号的数转换是需要补码的&#xff0c;所以我们想这个问题之前将补码的规则思考一遍&#xff08;首先将有符号…...

Linux学习之路 -- 进程 -- 进程间通信 -- 管道通信

本文主要介绍进程通信中的管道通信。 前面我们学习进程的过程中&#xff0c;我们知道&#xff0c;进程是具有独立性的。这也就导致了进程不能够直接地把数据进行传递。为了实现进程之间地通信&#xff0c;我们就需要通过另外地方式来实现进程之间数据地传递。 1.进程通信的目…...

GB/T 38082-2019 生物降解塑料购物袋检测

生物降解塑料购物袋是指以生物降解树脂为主要原料制得的&#xff0c;具有提携结构的&#xff0c;在销售、服务等场所用于盛装及携提商品的袋制品。 GB/T 38082-2019 生物降解塑料购物袋检测项目&#xff1a; 检测项目 测试标准 尺寸偏差 GB/T 38082 感官 GB/T 38082 提掉…...

docker数据卷和资源控制

目录 数据卷 实现数据卷 宿主机和容器之间进行数据共享 容器与容器之间进行数据共享 容器互联 docker容器的资源控制 cpu 1.设置cpu资源控制&#xff08;比重&#xff09; 2. 设置cpu的资源占用比&#xff08;权重&#xff09; 3.设置容器绑定cpu 内存 1.内存限制 …...

Kafka系统及其角色

Apache Kafka系统介绍 Apache Kafka 是由 LinkedIn 公司最初开发的一个高性能、分布式的消息传递系统。它被设计为一个可扩展、持久、分布式的流式处理平台&#xff0c;以满足 LinkedIn 在实时数据处理方面的需求 。Kafka 的诞生源于 LinkedIn 需要处理海量数据时现有消息队列系…...

从零开始构建霸王餐返利APP的技术路线与挑战

从零开始构建霸王餐返利APP的技术路线与挑战 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在电商领域&#xff0c;霸王餐返利APP作为一种新兴的商业模式&#xff0c;为用…...

安装Jmeter,配置jdk

注意点: java的jdk和jmeter的版本相匹配 ! ! ! 目前我使用的是1.8的的,jmeter使用的是5.6.3 JDK下载地址&#xff1a;https://www.oracle.com/cn/java/technologies/downloads 别管,直接傻瓜式安装点点就完了... 1.电脑-属性-高级系统设置-环境变量 2.系统变量-新建-变量…...

Aria2@RPC下载@Alist批量下载

文章目录 abstractAria2 RPC 概述RPC 的主要功能在线文档aria2的配置文件与启动选项使用配置文件设置aria2 rpc功能Aria2关于rpc的离线文档 Aria2 RPC 重要和常用选项1. enable-rpc2. rpc-listen-port3. rpc-secret4. rpc-listen-all5. rpc-allow-origin-all6. rpc-max-request…...

神经串联式语音转换:对基于串联的单次语音转换方法的再思考 论文笔记

NEURAL CONCATENATIVE SINGING VOICE CONVERSION: RETHINKING CONCATENATION-BASED APPROACH FOR ONE-SHOT SINGING VOICE CONVERSION 笔记 发现问题&#xff1a; 在any-to-any的转换中,由于内容和说话人音色的解耦不足,导致源说话人的音色部分仍保留在转换后的音频中&#x…...

机器学习(1)--数据可视化

文章目录 数据可视化作用可视化方法实现可视化 总结 数据可视化 数据可视化是将数据以图形、图像、动画等视觉形式表示出来&#xff0c;以便人们能够更直观地理解、分析和交流数据中的信息。 作用 一个整理的好好的数据&#xff0c;我们为什么要将其可视化呢&#xff1f;将它…...

docker部署Prometheus、Grafana

docker部署Prometheus 1、 拉取prometheus镜像 docler pull prom/prometheus 遇到问题&#xff1a;注意下科学上网。 2、将prometheus配置文件放在外面管理 prometheus.yml global:scrape_interval: 15sevaluation_interval: 15salerting:alertmanagers:- static_configs:-…...

5.mysql多表查询

MYSQL多表查询 MYSQL多表查询1.多表关系笛卡尔积 2. 多表查询概述2.1 内连接2.2 外连接2.3自连接联合查询union &#xff0c;union all 2.4子查询2.4.1标量子查询2.4.2列子查询2.4.3行子查询2.4.4表子查询 MYSQL多表查询 create table student(id int auto_increment primary …...

【前端面试】挖掘做过的nextJS项目(上)

为什么使用nextJS 需求: 快速搭建宣传官网 1.适应pc、移动端 2.基本的路由跳转 3.页面渲染优化 4.宣传的图片、视频资源的加载优化 5.seo优化 全栈react web应用、 tailwind css原子工具的支持&#xff0c;方便书写响应式ui app router(React 服务器组件)支持服务器渲…...

【Unity-UGUI】UGUI知识汇总

目录 前言1 UGUI系统原理2 事件系统2.1 EventSystem2.2 InputModules2.3 Raycasters2.4 协作 3 UGUI系统的组件3.1 Image和RawImage3.2 Mask和RectMask2D 扩展UI穿透问题 前言 记录一些最近学到的有关UGUI的知识。 参考 知乎&#xff1a;6千字带你入门UGUI源码 书籍&#xff…...

JavaScript性能测试:策略、工具与实践

在Web开发中&#xff0c;性能测试是确保应用程序达到预期响应速度和处理能力的关键步骤。JavaScript作为构建交互式Web应用的核心语言&#xff0c;其性能直接影响用户体验。本文将详细介绍如何使用JavaScript进行性能测试&#xff0c;包括性能测试的基本概念、测试类型、工具、…...

嵌入式软件开发学习一:软件安装(保姆级教程)

资源下载&#xff1a; 江协科技提供&#xff1a; 资料下载 一、安装Keil5 MDK 1、双击.EXE文件&#xff0c;开始安装 2、 3、 4、此处尽量不要安装在C盘&#xff0c;安装路径选择纯英文&#xff0c;防止后续开发报错 5、 6、 7、弹出来的窗口全部关闭&#xff0c;进入下一步&a…...

SpringMVC学习中遇到的不懂注解记录

文章目录 Autowrite 和 ResourceQualifier 和 PrimaryPathVariableController、Service、Repository 和 Component Autowrite 和 Resource 我们先讲讲 Autowrite 注解 吧。 public class StudentService3 implements IStudentService {//Autowiredprivate IStudentDao studentD…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...