【算法刷题day11】Leetcode: 20. 有效的括号、 1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
20. 有效的括号
文档链接:[代码随想录]
题目链接:20. 有效的括号
状态:ok
题目:
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
注意:
1.用栈处理,先判断空,如果是左括号或空则入栈,如果右括号则看栈顶能不能消。
class Solution {
public:bool isValid(string s) {stack<char> a;for(int i = 0; i < s.size(); i++){if(a.empty() || s[i] == '(' || s[i] == '{' || s[i] == '['){a.push(s[i]);}else{if(s[i]==')'){if(a.top() == '('){a.pop();}else return false;}else if(s[i]=='}'){if(a.top() == '{'){a.pop();}else return false;}else if(s[i]==']'){if(a.top() == '['){a.pop();}else return false;}}}if(a.empty())return true;return false;}
};
1047. 删除字符串中的所有相邻重复项
文档链接:[代码随想录]
题目链接:1047. 删除字符串中的所有相邻重复项
状态:ok
题目:
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
注意:
1.注意栈为空的情况和一直抵消的情况
2.最后栈是和字符串相反的,因此需要调换位置
3.注意字符串的定义形式为:string s = “”;
4.字符串添加字符的形式为:s+=“a”;
5.for循环的使用可以不用 i
class Solution {
public:string removeDuplicates(string s) {stack<char> a;for (int i = 0; i < s.size(); i++) {if (a.empty()) {a.push(s[i]);} else {if (a.top() != s[i]) {a.push(s[i]);} else {while (!a.empty() && a.top() == s[i]) {a.pop();i++;}if(i<s.size())a.push(s[i]);}}}string ss = "";stack<char> b;while (!a.empty()) {b.push(a.top());//cout<<b.top();a.pop();}int i = 0;while (!b.empty()) {ss += b.top();//cout<<ss[i - 1];b.pop();}//cout<<ss;s = ss;return s;}
};
class Solution {
public:string removeDuplicates(string S) {stack<char> st;for (char s : S) {if (st.empty() || s != st.top()) {st.push(s);} else {st.pop(); // s 与 st.top()相等的情况}}string result = "";while (!st.empty()) { // 将栈中元素放到result字符串汇总result += st.top();st.pop();}reverse (result.begin(), result.end()); // 此时字符串需要反转一下return result;}
};
150. 逆波兰表达式求值
文档链接:[代码随想录]
题目链接:150. 逆波兰表达式求值
状态:ok
题目:
给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。
请你计算该表达式。返回一个表示表达式值的整数。
注意:
有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’ 。
每个操作数(运算对象)都可以是一个整数或者另一个表达式。
两个整数之间的除法总是 向零截断 。
表达式中不含除零运算。
输入是一个根据逆波兰表示法表示的算术表达式。
答案及所有中间计算结果可以用 32 位 整数表示。
注意:
1.数据范围应该采用Longlong,C++中将字符串转化为longlong ,采用stoll(tokens[i])
2.a.pop()返回值为void,如果想获得栈顶元素应该用a.top()
class Solution {
public:int evalRPN(vector<string>& tokens) {stack<long long> a;for(int i = 0; i < tokens.size(); i++){if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){long long left = a.top();a.pop();long long right = a.top();a.pop();if(tokens[i] == "+"){a.push(left + right);}else if(tokens[i] == "-"){a.push(right - left);}else if(tokens[i] == "*"){a.push(left * right);}else if(tokens[i] == "/"){a.push(right / left);}}else{a.push(stoll(tokens[i]));}}long long result = a.top();return result;}
};
相关文章:
【算法刷题day11】Leetcode: 20. 有效的括号、 1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
20. 有效的括号 文档链接:[代码随想录] 题目链接:20. 有效的括号 状态:ok 题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符…...
推荐算法策略需求-rank model优化
1.pred_oobe (base) [rusxx]$ pwd /home/disk2/data/xx/icode/baidu/oxygen/rus-pipeline/pipeline-migrate/UserBaseActiveStatPipeline/his_session (base) [rusxx]$ sh test.sh 2. user_skill_history_dict_expt2包含userid [workxx]$ vim /home/work/xx/du-rus/du_rus_o…...
hadoop 常用命令
hadoop 常用命令 hadoop fs -mkdir /test hadoop fs -put /opt/frank/tb_test03.txt /test/ hadoop fs -ls /test/ hadoop fs -cat /test/tb_test03.txt hadoop fs -rm /test/tb_test03.txt hadoop dfs 也能使用、但不推荐,执行会提示: DEPRECATED: Us…...
pdf在浏览器上无法正常加载的问题
一、背景 觉得很有意思给大家分享一下。事情是这样的,开发给我反馈说,线上环境接口请求展示pdf异常,此时碰巧我前不久正好在ingress前加了一层nginx,恰逢此时内心五谷杂陈,思路第一时间便放在了改动项。捣鼓了好久无果…...
实时语音识别(Python+HTML实战)
项目下载地址:FunASR 1 安装库文件 项目提示所需要下载的库文件:pip install -U funasr 和 pip install modelscope 运行过程中,我发现还需要下载以下库文件才能正常运行: 下载:pip install websockets,pi…...
x86_64 ubuntu22.04编译MetaRTC
metaRTC5.0 API https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API Sample https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API-Sample MetaRTC7.0编译 https://github.com/metartc/metaRTC/wiki/Here-we-come,-write-a-C-version-of-webRTC-that-runs-everywhere…...
FreeRTOS day1
1.总结keil5下载代码和编译代码需要注意的事项 需要与板子连通 配置完成后才点击下载 2.总结STM32Cubemx的使用方法和需要注意的事项 下载支持包 打开芯片配置界面 3.总结STM32Cubemx配置GPIO的方法...
SqlSugar快速入门
文章目录 配置SqlSugar0、引入SqlSugarCore包1、编写Context类2、配置实体类3、创建Service服务类进行数据库的CRUD4、配置Controller进行路由 配置SqlSugar 0、引入SqlSugarCore包 1、编写Context类 public static SqlSugarClient db new SqlSugarClient(new ConnectionCon…...
基于el-table实现行内增删改
实现效果: 核心代码: <el-table :data"items"style"width: 100%;margin-top: 16px"border:key"randomKey"><el-table-column label"计划名称"property"name"><template slot-scope&q…...
《霍格沃茨之遗》推荐购买吗 《霍格沃茨之遗》不支持Mac电脑怎么办 crossover24软件值得买吗 crossover中文官网
《霍格沃茨之遗》作为一款期待已久的游戏,自发布以来就吸引了无数玩家的目光。它以哈利波特系列为背景,提供了一个沉浸式的魔法世界体验,让玩家能够探索广阔的霍格沃茨魔法学校,体验魔法学习与战斗,解开古老谜团的乐趣…...
神经网络代码实现(用手写数字识别数据集实验)
目录 一、前言 二、神经网络架构 三、算法实现 1、导入包 2、实现类 3、训练函数 4、权重参数矩阵初始化 5、参数矩阵变换向量 6、向量变换权重参数矩阵 7、进行梯度下降 7.1、损失函数 7.1.1、前向传播 7.2、反向传播 8、预测函数 四、完整代码 五、手写数字识别 一、前言 …...
菜鸟笔记-Python函数-linspace
linspace 是 NumPy 库中的一个函数,用于生成具有指定数量的等间距样本的数组。它的名字来源于“linear space”(线性空间),因为它在指定的范围内均匀地生成数值。 linspace 函数的基本语法如下: numpy.linspace(star…...
为什么我们应该使用QGIS
QGIS地理信息系统是免费的开源软件,已成为创建地图和分析空间数据的强大工具。在本文中,我们将探讨 QGIS 为地图公司带来的诸多好处,以及为什么使用它可以促进您的业务成功。使用QGIS的好处: 1. 免费开源软件,但从长远…...
用Python实现办公自动化(自动化处理Excel工作簿)
自动化处理Excel工作簿 (一)批量生产产品出货清单 以“出货统计表”为例, 需求:将出货记录按照出货日期分类整理成多张出货清单 “出货统计表数据案例” “产品出货清单模板” 1.提取出货统计表的数据 “Python程序代码” # 使用…...
BaseDao入门使用
目录 一、什么是BaseDao?BaseDao的优点:BaseDao用来做什么操作? 二、BaseDao封装增删改查 案例演示:1、java与数据库进行连接2、连接后可对其进行操作(增、删、改)返回影响行数3、查询 查询一个字段(返回一…...
计算机毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 大数据毕业设计 机器学习 深度学习 人工智能
学院(全称): 专业(全称): 姓名 学号 年级 班级 设计(论文) 题目 基于Spark的高考志愿推荐系统设计与实现 指导教师姓名 职称 拟…...
基于java+springboot+vue实现的电商个性化推荐系统(文末源码+Lw+ppt)23-389
摘 要 伴随着我国社会的发展,人民生活质量日益提高。于是对电商个性化推荐进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套电商个性化推荐系统,帮…...
论文阅读,The Lattice Boltzmann Method: Principles and Practice(六)(1)
目录 一、流体模拟方法概述 二、传统的Navier-Stokes求解器 2.1 有限差分 2.2 有限体积法 2.3 有限元法 三、基于粒子的求解器 3.1 动力学理论 3.2 分子动力学 3.3 格子气体模型 3.4 耗散粒子动力学 3.5 多粒子碰撞动力学 3.6 直接模拟蒙特卡罗方法 3.7 平滑粒子流…...
新能源充电桩站场视频汇聚系统建设方案及技术特点分析
随着新能源汽车的普及,充电桩作为新能源汽车的基础设施,其安全性和可靠性越来越受到人们的关注。为了更好地保障充电桩的安全运行与站场管理,TSINGSEE青犀&触角云推出了一套新能源汽车充电桩视频汇聚管理与视频监控方案。 方案采用高清摄…...
三、音频隐写[Audacity、deepsound、dtmf2num、MMSSTV、虚拟声卡、MP3Stego]
工具 1.Audacity 下载:https://www.audacityteam.org/download/windows/ 使用: 删除:先用左键长按拖着选中内容,然后选择软件最上方菜单栏的编辑,然后选择“删除”,最后点击文件的导出音频就能成功导出…...
【BLE系列-第四篇】数据链路层(LL)实战:广播与连接参数优化指南
1. BLE数据链路层核心参数解析 低功耗蓝牙(BLE)的数据链路层(LL)就像交通系统中的红绿灯和道路规划,它决定了设备间如何高效、稳定地建立通信。在实际开发中,我经常遇到工程师对着几十个参数发愁࿱…...
矢量网络分析仪(VNA)校准实战:从原理到操作全解析
1. 矢量网络分析仪校准的核心原理 第一次接触矢量网络分析仪(VNA)时,我完全被那些复杂的S参数曲线搞懵了。直到老师傅告诉我:"VNA就是个高级照妖镜,校准就是给它配副好眼镜"。这个比喻让我恍然大悟——没有校…...
爱享素材下载器:跨平台资源下载的终极解决方案
爱享素材下载器:跨平台资源下载的终极解决方案 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode.com/GitHub…...
LPC11U24内部EEPROM原理与高可靠写入实践
1. LPC11U24 内部EEPROM技术深度解析与工程实践指南LPC11U24是NXP(恩智浦)推出的基于ARM Cortex-M0内核的低成本、低功耗32位微控制器,广泛应用于工业控制、消费电子和物联网终端节点。其片上集成的1024字节内部EEPROM(Electrical…...
【UE5】深入解析Dedicated Server专用服务器的网络同步机制与实战优化
1. UE5专用服务器基础概念解析 第一次接触UE5专用服务器(Dedicated Server)时,我完全被各种专业术语绕晕了。经过几个项目的实战后,我发现理解它的本质其实很简单——就像餐厅里的服务员与顾客的关系。服务器就是那个永远在后台忙碌的服务员,…...
Pikachu文件包含漏洞的花式玩法:从源码读取到蚁剑GetShell全记录
Pikachu文件包含漏洞的深度利用:从源码审计到权限维持实战 在网络安全领域,文件包含漏洞一直是渗透测试中的"黄金门票"。不同于简单的SQL注入或XSS攻击,文件包含漏洞往往能带来更直接的服务器控制权。本文将带你深入Pikachu靶场&am…...
SkyWalking TTL配置实战:如何精准控制监控数据生命周期
1. 理解SkyWalking TTL的核心价值 当你的微服务集群每天产生TB级监控数据时,存储成本会像野马一样失控。去年我们一个电商项目就遇到过这样的困境——仅仅三个月ES集群就撑爆了200TB磁盘空间,而排查问题时发现99%的监控数据其实早已失效。这正是TTL&…...
JSON-C 安全编程:如何避免 JSON 相关的安全漏洞
JSON-C 安全编程:如何避免 JSON 相关的安全漏洞 【免费下载链接】json-c https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/ 项目地…...
80+款Android UI模板深度解析:从零到一构建专业级应用界面的实战指南
80款Android UI模板深度解析:从零到一构建专业级应用界面的实战指南 【免费下载链接】Android-ui-templates Download free android app templates free and paid. 项目地址: https://gitcode.com/gh_mirrors/an/Android-ui-templates 在当今移动应用开发领域…...
中兴B863AV3.2-M/B863AV3.1-M2_S905L3A_通刷_优化开机速度_指示灯绿色
中兴B863AV3.2-M/B863AV3.1-M2_S905L3A_通刷_优化开机速度_指示灯绿色线刷方法:1、准备好一根双公头USB线刷刷机线,长度30-50CM长度最佳,同时准备一台电脑;2、电脑上安装好刷机工具Amlogic USB Burning Tool 软件 →打…...
