leetcode算法之栈

目录

  • 1.删除字符串中的所有相邻重复项
  • 2.比较含退格的字符串
  • 3.基本计算器II
  • 4.字符串解码
  • 5.验证栈序列

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

删除字符串中的所有相邻重复项
在这里插入图片描述

class Solution {
public:string removeDuplicates(string s) {string ret;//使用数组模拟栈操作for(auto ch:s){if(ret.size()&& ch == ret.back()) ret.pop_back();else ret+=ch;}return ret;}
};

2.比较含退格的字符串

比较含退格的字符串
在这里插入图片描述

class Solution {
public:bool backspaceCompare(string s, string t) {return changeStr(s) == changeStr(t);}string changeStr(string& s){string ret;for(auto ch:s){if(ch != '#') ret+=ch;else {if(ret.size()){ret.pop_back();}}}return ret;}
};

3.基本计算器II

基本计算器II
在这里插入图片描述

class Solution {
public:int calculate(string s) {//双栈vector<int> st;//使用数组来模拟栈结构char op = '+';//使用变量来模拟栈结构int i = 0,n = s.size();while(i<n){if(s[i] ==' ') {i++;}else if(s[i]>='0'&&s[i]<='9'){int tmp = 0;while(i<n && (s[i]>='0'&&s[i]<='9')) tmp = tmp*10+(s[i++]-'0');if(op == '+') st.push_back(tmp);else if(op == '-') st.push_back(-tmp);else if(op == '*') st.back()*=tmp;else if(op == '/') st.back() /= tmp;}else{op = s[i];i++;}}int ret = 0;for(auto x:st) ret+=x;return ret;}
};

4.字符串解码

字符串解码
在这里插入图片描述

class Solution {
public:string decodeString(string s) {//双栈stack<string> st;stack<int> nums;st.push("");int i =0,n = s.size();while(i<n){if(s[i]>='0'&&s[i]<='9'){int tmp = 0;while(s[i]>='0'&&s[i]<='9') tmp = tmp*10+(s[i++]-'0');nums.push(tmp);}else if(s[i] == '['){i++;string tmp;while(s[i]>='a'&&s[i]<='z') tmp+=s[i++];st.push(tmp);}else if(s[i] == ']'){string tmp = st.top();st.pop();int k = nums.top();nums.pop();while(k--){st.top()+=tmp;}i++;}else{string tmp;while(i<n && s[i]>='a'&&s[i]<='z') tmp+=s[i++];st.top()+=tmp;}}return st.top();}
};

5.验证栈序列

验证栈序列
在这里插入图片描述

class Solution {
public:bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {stack<int> st;int i =0,n = popped.size();for(auto ch:pushed){st.push(ch);while(st.size() && st.top() == popped[i]) {st.pop();i++;}}return i==n;}
};

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

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

相关文章

基于单片机远程温控检测系统

**单片机设计介绍&#xff0c;基于单片机远程温控检测系统&#xff08;含上位机&#xff09; 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的远程温控检测系统可以用于远程监测和控制温度&#xff0c;实现远程温度监…

关于栈的简单理解

1. 栈(Stack) 1.1 文字讲解 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则&a…

gromacs学习及使用(1)

1.Gromacs的使用 2.Gromacs 的第一步_能量最小化 3.分子动力学模拟Gromacs一般使用步骤&#xff08;空蛋白&#xff09; 4.GROMACS优化(没看懂) 5.GROMACS快速入门&#xff08;有好东西&#xff09; GROMACS中文教程 gmx editconf -f xxx -o xxx6.GROMACS运行参数之em.mdp文…

Open3D 最小二乘拟合空间直线(方法二)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理

docker踩坑记录:docker容器创建doris容器间无法通讯问题

背景&#xff1a; 开发大数据平台&#xff0c;使用doris作为数据仓储&#xff0c;使用docker做集群部署&#xff0c;先进行开发环境搭建&#xff0c;环境为BE1;FE1&#xff0c;原来使用官方例子&#xff0c;但是官方例子是创建了一个bridge使用172.20.80.0/24通讯&#xff0c;…

「Swift」类淘宝商品瀑布流展示

前言&#xff1a;需要做一个类似于淘宝商品页面的瀑布流展示 结构分析&#xff1a; ps&#xff1a;图片来源 思路分析&#xff1a; 该瀑布流主要还是基于UICollectionView进行展示&#xff0c;只是在cell展示的UICollectionViewFlowLayout需要进行相应调整和自定义&#xff…

Mybatis 操作续集(连着上文一起看)

"查"操作(企业开发中尽量不使用*,需要哪些字段就写哪些字段,都需要就全写上) Mybatis 会自动地根据数据库的字段名和Java对象的属性名进行映射,如果名称一样就进行赋值 但是那些名称不一样的,我们想要拿到,该怎么拿呢? 一开始数据库字段名和Java对象属性名如下图…

C# | 使用AutoResetEvent和ManualResetEvent进行线程同步和通信

使用AutoResetEvent和ManualResetEvent进行线程同步和通信 文章目录 使用AutoResetEvent和ManualResetEvent进行线程同步和通信介绍AutoResetEventManualResetEvent 异同点使用场景和代码示例AutoResetEvent 使用示例ManualResetEvent 使用示例阻塞多个线程并同时激活 介绍 在…

创新领航 | 竹云参编《基层智治系统安全接入规范》团体标准正式发布!

近日&#xff0c;由杭州市委办公厅&#xff08;市密码管理局&#xff09;、杭州市基层治理综合指挥保障中心、杭州市拱墅区社会治理中心、杭州市拱墅区数据资源管理局、杭州竹云数字智能科技有限公司、杭州智诚质量标准技术评定中心共同参与编写的《基层智治系统安全接入规范》…

Video Studio会声会影2024中文直装旗舰版

Corel Video Studio会声会影2024中文直装旗舰版是一款很流行的视频编辑处理软件&#xff0c;由于其简单易用&#xff0c;且功能不错&#xff0c;在国内拥有众多使用者&#xff0c;小编之前给大家分享过Corel Video Studio Ultimate会声会影2024旗舰版中文版&#xff0c;今天再为…

8.7 矢量图层点要素点分布(Point displacement)使用

文章目录 前言点分布&#xff08;Point displacement&#xff09;QGis代码实现 总结 前言 前面介绍了矢量-点要素-单一符号、矢量-点要素-分类符号、矢量-点要素-分级符号以及矢量-点要素-基于规则的使用本章介绍如何使用点分布&#xff08;Point displacement&#xff09;说明…

【兔子王赠书第10期】零基础入门Python,看这篇就够啦!

文章目录 写在前面推荐图书前言为什么要学习编程如何学习编程本书内容获得帮助 推荐理由粉丝福利写在后面 写在前面 粉丝福利第10期来啦&#xff0c;本期博主给大家推荐一本非常适合零基础入门Python的图书&#xff1a;《Python超能学习手册》&#xff0c;祝大家读完本书后都可…

C++:智能指针[重点!]

目录 一、关于智能指针 1、引入智能指针 2、RAII 二、详述智能指针 auto_ptr unique_ptr shared_tr 循环引用 weak_ptr 定制删除器 三、关于内存泄漏 一、关于智能指针 1、引入智能指针 首先引入一个例子&#xff1a; 在Test函数中&#xff0c;new了两个对象p1p2&a…

vue中的this.$nextTick().then()

MENU 示例一示例二sortsplicepushrandomfloorMathwhile演示 示例一 let reorganize function (arr){let rest [];while (arr.length > 0) {let random Math.floor(Math.random() * arr.length);// 把获取到的值放到新定义的数组中rest.push(arr[random]);// 这句代码的作…

【Flink】Flink核心概念简述

目录 一、Flink 简介二、Flink 组件栈1. API & Libraries 层2. runtime层3. 物理部署层 三、Flink 集群架构四、Flink基本编程模型五、Flink 的优点 一、Flink 简介 Apache Flink 的前身是柏林理工大学一个研究性项目&#xff0c; 在 2014 被 Apache 孵化器所接受&#xf…

Hive jar包冲突问题排查解决

1、报错情况 hiveserver2启动失败&#xff0c;查看日志报错&#xff1a; 2022-07-04T20:14:53,315 WARN [main]: server.HiveServer2 (HiveServer2.java:startHiveServer2(1100)) - Error starting HiveServer2 on attempt 1, will retry in 60000ms java.lang.NoSuchMethod…

『Charles数据抓包功攻略』| 如何使用Charles进行数据抓包与分析?

『Charles数据抓包功攻略』| 如何使用Charles进行数据抓包与分析&#xff1f; 1 Charles简介2 Charles主要功能3 Charles下载4 Charles安装5 Charles界面介绍6 不能抓取localhost数据的解决方法7 http抓包8 https抓包8.1 SSL证书导入8.2 SSL Proxying Setting设置 9 APP抓包9.1…

Redis高可用之Sentinel哨兵模式

一、背景与简介 Redis关于高可用与分布式有三个与之相关的运维部署模式。分别是主从复制master-slave模式、哨兵Sentinel模式以及集群Cluster模式。 这三者都有各自的优缺点以及所应对的场景、对应的业务使用量与公司体量。 1、主从master-slave模式 【介绍】 这种模式可以采用…

ssm土家风景文化管理平台源码和论文答辩PPT

摘要 土家风景文化管理平台是土家风景文化管理必不可少的一个部分。在风景文化管理的整个过程中&#xff0c;平台担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类土家风景文化管理平台也在不断改进。本课题所设计的土家风景文化管理平台&#xff0c;使用jav…

FacetWP Relevanssi Integration相关性集成插件

点击阅读FacetWP Relevanssi Integration相关性集成插件原文 FacetWP Relevanssi Integration相关性集成插件是FacetWP与用于高级搜索的 Relevanssi 插件的集成显着增强了您网站的搜索功能。这个强大的工具使您的用户能够轻松找到他们寻求的特定内容&#xff0c;无论他们的查询…