代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

news2024/11/26 16:25:04

题目:20. 有效的括号

文章链接:代码随想录

视频链接:LeetCode:20.有效的括号

题目链接:力扣题目链接

图释:

class Solution {
public:
    // 有效的括号
bool isValid(string s) {
	// 遇到左括号时就放入右括号,遇到右括号时,与栈内的顶元素进行比较
	// 情况一:与栈顶元素相等,则是true
	// 情况二:与栈顶元素不相等,则可能是顺序错误
	// 情况三:栈内元素为空,则说明左括号多了
	// 情况四:数组遍历结果,则说明右括号多了
	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('}');
		}
		// 遇到右括号时
		if (s[i] == ')' || s[i] == ']' || s[i] == '}') {
			// 先判断栈内元素是否为空
			if (st.empty())return false;
			// 遇到右括号,与栈顶元素进行比较
			if (s[i] == st.top()) {
				st.pop(); // 相等则将栈内元素弹出
			}
			else {
				// 不相等直接返回false
				return false;
			}
		}
	}
	// 数组遍历完,查看栈内元素情况
	if (st.empty())return true;
	return false;
}

};

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

文章链接:代码随想录

视频链接:LeetCode:1047.删除字符串中的所有相邻重复项

题目链接:力扣题目链接

图释:

class Solution {
public:
// 删除字符串中的所有相邻重复项
string removeDuplicates(string s) {
	// 思路:遍历每个元素时,先判断栈内元素是否为空,如果为空则直接放入
	// 如果不为空,则与栈内元素进行比较,如果相同的话,则移除栈内元素,不相同的话也是直接放入
	// 最后,直接输出栈内元素,再进行反转
	stack<char>st;
	for (int i = 0; i < s.size(); i++) {
		if (st.empty() || st.top() != s[i]) {
			st.push(s[i]);
		}
		else {
			// 如果栈顶元素等于当前字符,则弹出栈顶元素
			st.pop();
		}
	}
	// 再把所有元素拿出来
	string result;
	int i = 0;
	while (st.empty() != true) {
		result += st.top(); //使用了string的重载+号
		st.pop();
	}
	reverse(result.begin(), result.end());
	return result;
}
};

题目:150. 逆波兰表达式求值

文章链接:代码随想录

视频链接:LeetCode:150.逆波兰表达式求值

题目链接:力扣题目链接

图释:

class Solution {
public:
    // 逆波兰表达式求值
int evalRPN(vector<string>& tokens) {
	// 用栈来完成,遍历数组放进栈内,当遇到有效运算符时,取出栈顶的两个元素进行运算,再把运算结果放进栈中
	stack<long long>st;
	for (int i = 0; i < tokens.size(); i++) {
		// 如果数组没遍历完,就遇到栈为空,则说明输入错误
		if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {
			long long temp1 = st.top();
			st.pop();
			long long temp2 = st.top();
			st.pop();
			long long sum;
			if (tokens[i] == "+") {
				sum = temp1 + temp2;
			}else if (tokens[i] == "-") {
				sum = temp2 - temp1;
			}else if (tokens[i] == "*") {
				sum = temp1 * temp2;
			}else if (tokens[i] == "/") {
				sum = temp2 / temp1;
			}
			st.push(sum);
		}else{
		    st.push(stoll(tokens[i]));
        }
	}
	int result = st.top();
	st.pop();
	return result;
}
};

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

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

相关文章

【C语言】结构体类型名、变量名以及typedef

文章目录 分类判断结构体成员的使用typedef 分类判断 struct tag {char m;int i; }p;假设定义了上面这一个结构体&#xff0c;tag 就是类型名&#xff0c; p 就是变量名&#xff0c; m 和 i 就是结构体成员列表。 可以这么记&#xff0c;括号前面的是类型名&#xff0c;括号后…

尝试搭建谷粒商城 记录(四)

1、分布式组件 父工程引入依赖&#xff08;已完成&#xff09; spring boot 2.1.8.RELEASE spring cloud Greenwich.SR3 spring cloud alibaba 2.1.0.RELEASE 1. nacos用作服务注册中心 1、nacos下载安装 下载地址&#xff1a; https://github.com/alibaba/nacos/rel…

教务管理系统(java+mysql+jdbc+Druid+三层架构)

1、项目要求 1.1数据库表描述 设计一个教务管理系统&#xff0c;要求如下&#xff1a; 系统涉及的表有 account表&#xff08;账号表&#xff09; teacher表&#xff08;教师表&#xff09; student表&#xff08;学生表&#xff09; course表 (课程表) score表&#xff08;成…

【运维】MacOS Wifi热点设置

目录 打开热点 配置共享网段 打开热点 打开macOS设置&#xff0c;进入通用->共享 点击如下图标进行配置&#xff0c; 会进入如下界面&#xff08;⚠️目前是打开共享状态&#xff0c;无法修改配置&#xff0c;只有在未打开状态才能进入配置&#xff09; 配置完成后&#x…

STM32-DMA数据转运

DMA进行转运的条件 1&#xff1a;开关控制&#xff0c;DMA_CMD必须使能2&#xff1a;传输计数器必须大于03&#xff1a;触发源必须有触发的信号

短剧app系统开发:在短剧爆发期普通人如何实现收益?

今年春节&#xff0c;几部大热短剧抓住了流量密码&#xff0c;在市场中掀起了一股新的短剧热潮。在短剧火爆的诱惑下&#xff0c;吸引了越来越多的人进行到短剧市场中&#xff0c;市场规模迅速暴涨&#xff0c;已超五百多亿元&#xff01; 随着互联网的发展&#xff0c;各类影…

宝宝洗衣机买几公斤?四款实力扛鼎婴儿洗衣机推荐

对于有了宝宝的家庭来说&#xff0c;洗衣成为了一项重要的家务事。大家都知道&#xff0c;宝宝的皮肤比较娇嫩&#xff0c;容易受到各种细菌、病毒的侵扰。所以&#xff0c;宝宝的衣物应该与大人的分开单独清洗。婴儿洗衣机作为一种专门为婴幼儿家庭设计的洗衣机&#xff0c;其…

Vue.js前端开发零基础教学(二)

目录 前言 2.1 单文件组件 2.2 数据绑定 2.2.2 响应式数据绑定 2.3 指令 2.3.1 内容渲染指令 2.3.2 属性绑定指令 ​编辑 2.3.3 事件绑定指令 2.3.4 双向数据绑定指令 2.3.5 条件渲染指令 2.3.6 列表渲染指令 2.4 事件对象 2.5 事件修饰符 学习目标&am…

VR消防安全体验馆的作用|元宇宙文旅|VR设备价格

VR消防安全体验馆的作用主要包括以下几个方面&#xff1a; 提高火灾防范意识&#xff1a; 通过虚拟现实技术展示各种火灾场景和应急情况&#xff0c;让参观者身临其境地感受到火灾的危险性&#xff0c;从而增强他们的火灾防范意识。 实战演练能力&#xff1a; 参观者可以在虚拟…

安科瑞ASCP 系列电气防火限流式保护器

背景 随着社会经济的飞速发展&#xff0c;电气化程度不断提高&#xff0c;用电负荷过大、线路短路等原因导致电气火灾发生越来越频繁&#xff0c;使得火灾数量呈上升趋势。 据公安部消防局5年的统计分析&#xff0c;电气火灾发生的场所中&#xff0c;住宅发生火灾事故的数量高…

本地gitlab-runner的创建与注册

引言 之前通过一些方式在本地创建runner&#xff0c;时而会出现一些未知的坑&#xff0c;所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab r…

【设计模式】Java 设计模式之模板命令模式(Command)

命令模式&#xff08;Command&#xff09;的深入分析与实战解读 一、概述 命令模式是一种将请求封装为对象从而使你可用不同的请求把客户端与接受请求的对象解耦的模式。在命令模式中&#xff0c;命令对象使得发送者与接收者之间解耦&#xff0c;发送者通过命令对象来执行请求…

ZEM系列台式扫描电镜在陶瓷材料中的应用

陶瓷是一种常见的无机非金属材料&#xff0c;由于其优异的物理化学性能&#xff0c;在航空航天、电子信息、生物医药、高端装备制造等高端科技领域随处可见。如制造电子线路中的电容器用的电介质瓷&#xff0c;制造集成电路基片和管壳用的高频绝缘瓷等。陶瓷材料以其独特的声、…

wireshark 使用实践

1、打开wireshark软件&#xff0c;选择网卡&#xff0c;开始抓包 2、打开浏览器&#xff0c;访问一个http网站&#xff1a;这里我用 【邵武市博物馆】明弘治十一年&#xff08;1498&#xff09;铜钟_文物资源_福建省文 测试&#xff0c;因为它是http的不是https&#xff0c;方…

【VUE】前端阿里云OSS断点续传,分片上传

什么是OSS&#xff1a; 数据以对象&#xff08;Object&#xff09;的形式存储在OSS的存储空间&#xff08;Bucket &#xff09;中。如果要使用OSS存储数据&#xff0c;您需要先创建Bucket&#xff0c;并指定Bucket的地域、访问权限、存储类型等属性。创建Bucket后&#xff0c;您…

嵌套循环实现九九乘法表

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 案例描述 利用嵌套循环&#xff0c;实现九九乘法表。 代码 #include <iostream> #include <Windows.h>using namespace std;int main(void) {//外层循环执行一次&#…

Samtec科普 | 一文了解患者护理应用连接器

【摘要/前言】 通过医疗专业人士为患者提供护理的种种需求&#xff0c;已经不限于手术室与医院的各种安全状况。当今许多患者的护理都是在其他环境进行&#xff0c;例如医生办公室、健康中心&#xff0c;还有越来越普遍的住家。尤其是需要长期看护的患者&#xff0c;所需的科技…

基于python高考志愿推荐系统设计与实现-flask-django-nodejs-php

随着现代化的互联网技术的发展&#xff0c;目前&#xff0c;高考志愿推荐系统系统的设计还处在一个不断发展的时期&#xff0c;因此&#xff0c;它的要求也是相对苛刻的。 根据现实需要&#xff0c;此系统我们设计出一下功能&#xff0c;主要有以下功能模板。 语言&#xff1a…

OpenCV C++ 图像处理实战 ——《物体数量计数与尺寸测量》

OpenCV C++ 图像处理实战 ——《物体数量计数与尺寸测量》 一、结果演示二、多尺度自适应Gamma矫正的低照度图像增强三、轮廓计算与尺寸测量3.1 图像二值化3.2 轮廓提取3.3 物体计数与尺寸测量四、源码测试图像下载总结一、结果演示 二、多尺度自

Java vue 开源问卷调查系统 附项目地址

开源问卷调查系统 平台简介 本项目旨在提供一个简单易用的问卷调查平台&#xff0c;帮助用户创建、分享问卷&#xff0c;并收集、分析调查数据。我们希望能够为各行各业的调查需求提供一种高效、便捷的解决方案。 项目特点 用户友好&#xff1a;清晰直观的用户界面&#xf…