[栈的应用]有效的括号|删除字符串中的所有相邻重复项|逆波兰式求值

一、有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

1.左括号必须用相同类型的右括号闭合。

2.左括号必须以正确的顺序闭合。

3.每个右括号都有一个对应的相同类型的左括号

class Solution {
public:
    bool isValid(string s) {
        stack<char> p;
        p.push('#');//防止非法访问栈顶元素
        for (int i = 0; i < s.size(); i++) {
            if ((s[i] == ')' && p.top() == '(') ||
                (s[i] == ']' && p.top() == '[') ||
                (s[i] == '}') && p.top() == '{') {   
                p.pop();   //if匹配成功入栈
            } else {
                p.push(s[i]);//没匹配成功入栈
            }
        }
        return p.top() == '#';
    }
};

 思路:每次和栈顶元素比较,匹配的话栈顶出栈,不匹配的话,压栈。最后栈只剩#代表是有效的括号。加入#的目的是因为为了防止最开始,无法和栈顶元素比较。

二、给出由小写字母组成的字符串 S重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

输入:"abbaca" 输出:"ca"

class Solution {
public:
    string removeDuplicates(string s) {
        stack<char> p;
        string q="";
        p.push('#');
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == p.top())
                p.pop();
            else
                p.push(s[i]);
        }
        int i=0;
        while(p.top()!='#')
        {
             q.push_back(p.top());
             p.pop();
        }
        reverse(q.begin(),q.end());
        return  q;
    }
};

思路:此题和上面有效的括号异曲同工

三、输入:tokens = ["2","1","+","3","*"] 输出:9

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<int> p;
        for (int i = 0; i < tokens.size(); i++) {
            string s = tokens[i];
            if (s != "+" && s != "-" && s != "*" && s != "/")
                p.push(atoi(s.c_str()));
            else {
                int num1 = p.top();
                p.pop();
                int num2 = p.top();
                p.pop();
                if (s == "+") {
                    p.push(num2 + num1);
                }
                if (s == "-") {
                    p.push(num2 - num1);
                }
                if (s == "*") {
                    p.push(num2 * num1);
                }
                if (s == "/") {
                    p.push(num2 / num1);
                }
            }
        }
        return p.top();
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

08. Springboot集成webmagic实现网页爬虫

目录 1、前言 2、WebMagic 3、Springboot集成Webmagic 3.1、创建Springboot&#xff0c;并引入webmagic依赖 3.2、定义PageProcessor 3.3、元素选择 3.3.1、F12查看网页元素 3.3.2、元素选择 3.3.3、注意事项 4、小结 1、前言 在信息化的时代&#xff0c;网络爬虫已…

二叉树简单OJ题(及其后续函数补充)

OJ题 单值二叉树 首先呢&#xff0c;我们还是把问题分化一下&#xff0c;求一棵二叉树是否为单值二叉树&#xff0c;还是可以分为几个部分&#xff1a;根节点 左子树 右子树 而我们向下遍历的时候&#xff0c;其实就是在这个节点以及其左子树和右子树中找&#xff0c;是否值都…

本地git切换地区后,无法使用ssh访问github 22端口解决方案

问题 由于放假回家&#xff0c;发现之前一直使用正常的git&#xff0c;与github无法通讯&#xff0c;pull和push都无法连接。报错如下&#xff1a; connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 原因 可能是所…

[学习笔记]刘知远团队大模型技术与交叉应用L3-Transformer_and_PLMs

RNN存在信息瓶颈的问题。 注意力机制的核心就是在decoder的每一步&#xff0c;都把encoder的所有向量提供给decoder模型。 具体的例子 先获得encoder隐向量的一个注意力分数。 注意力机制的各种变体 一&#xff1a;直接点积 二&#xff1a;中间乘以一个矩阵 三&#xff1a;…

常见Linux 命令,可以解决日常99%的问题

1、基本命令 uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息arch 显示机器的处理器架构uname -m 显示机器的处…

【代码编辑器】VS Code安装下载教程及后续基本配置(一)[小白看这一篇足够了,手把手教会]

前言 Visual Studio Code&#xff08;简称“VS Code” &#xff09;是Microsoft在2015年4月30日[Build]开发者大会上正式宣布一个运行于 [Mac OS X]、[Windows]和[ Linux]之上的&#xff0c;针对于编写现代[Web]和[云应用]的跨平台[源代码编辑器],可在桌面上运行&#xff0c;并…

打折:阿里云国外服务器价格购买优惠活动

阿里云国外服务器优惠活动「全球云服务器精选特惠」&#xff0c;国外服务器租用价格24元一个月起&#xff0c;免备案适合搭建网站&#xff0c;部署独立站等业务场景&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动&#xff1a; 全球云服务器精选特惠…

vectorCast添加边界值分析测试用例

1.1创建项目成功后会自动生成封装好的函数,在这些封装好的函数上点击右键,添加边界值分析测试用例,如下图所示。 1.2生成的用例模版是不可以直接运行的,需要我们分别点击它们,让它们自动生成相应测试用例。如下图所示,分别为变化前和变化后。 1.3点击选中生成的测试用例,…

【轮式平衡机器人】——角度/速度/方向控制分析软件控制框架

轮式平衡机器人具有自不稳定性&#xff0c;可类比一级倒立摆系统的控制方法&#xff0c;常见有反馈线性化方法、非线性PID控制、自适应控制、自抗扰控制&#xff0c;还有改进的传统缺乏对外界干扰和参数改变鲁棒性的滑模变结构控制。我们采用较为简单的双闭环PID控制实现平衡模…

指标异常检测和诊断

检测 是发现问题 诊断 是找到原因 误差的分类 系统误差&#xff1a;系统误差是由于仪器本身不精确&#xff0c;或实验方法粗略&#xff0c;或实验原理不完善而产生的。随机误差&#xff1a;随机误差是由各种偶然因素对实验者、测量仪器、被测物理量的影响而产生的。粗大误差&…

【C++】用wxWidgets实现多文档窗体程序

一、基本步骤和示例代码 在wxWidgets中&#xff0c;要实现多文档窗体程序&#xff0c;通常会使用wxMDIParentFrame和wxMDIChildFrame类来创建一种标准的MDI&#xff08;多文档接口&#xff09;应用。以下是基本步骤和示例代码&#xff0c;演示如何使用wxWidgets创建多文档界面…

ChatGLM vs ChatGPT

所有的NLP大模型 都是transformer结构 1.Mask attention 的策略不同 2.训练任务目标不同 国内大模型nb公司&#xff1a;百度、清华智谱 一、主流大模型 粉色&#xff1a;Encoder-only。 绿色&#xff1a;Encoder-Decoder&#xff0c;尽头智谱ChatGLM。 蓝色&#xff1a;…

机械设计-哈工大课程学习-螺旋传动

二、摩擦类型 1、静态摩擦&#xff1a;这是身体静止时所经历的摩擦。换句话说&#xff0c;就是身体有运动倾向时的摩擦力。 2、动态摩擦&#xff1a;这是身体在运动时所经历的摩擦。也称为动摩擦。动摩擦有以下两种类型&#xff1a; ①滑动摩擦&#xff1a;一个物体在另一个…

声明式注解对XXL-JOB的定时任务代码生效吗?

说明&#xff1a;源于博主的思考&#xff0c;本文验证一下声明式注解&#xff0c;即Transactional注解&#xff0c;对XXL-JOB的定时任务是否生效。 准备 首先&#xff0c;创建一个需要事务的场景。有两张表&#xff0c;一张部门表&#xff0c;一张用户表&#xff0c;用户隶属…

huggingface学习 | 云服务器使用hf_hub_download下载huggingface上的模型文件

系列文章目录 huggingface学习 | 云服务器使用git-lfs下载huggingface上的模型文件 文章目录 系列文章目录一、hf_hub_download介绍二、找到需要下载的huggingface文件三、准备工作及下载过程四、全部代码 一、hf_hub_download介绍 hf_hub_download是huggingface官方支持&…

【Godot4自学手册】第二节主人公设置

继续学习Godot&#xff0c;今天是第二节的内容&#xff0c;本节主要完成游戏玩家的设置&#xff0c;将玩家展现在场景中。 一、新建一个主场景 首先在场景面板中单击2D场景&#xff0c;如图。 这样我们就有了一个2D场景&#xff0c;我们将Node2D重新命名为“Main”&#xff…

核密度曲线(python

目录 1.代码&#xff1a;2.效果&#xff1a;小结&#xff1a; 1.代码&#xff1a; import pandas as pd import matplotlib.pyplot as plt # 读入数据 file r123.xlsx sheet Sheet2 col S213 # 标题名称 title col 供订比曲线 xlabel 供订比 # 横轴显示范围 xleft 0 xr…

数据操作——缺失值处理

缺失值处理 缺失值的处理思路 如果想探究如何处理无效值, 首先要知道无效值从哪来, 从而分析可能产生的无效值有哪些类型, 在分别去看如何处理无效值 什么是缺失值 一个值本身的含义是这个值不存在则称之为缺失值, 也就是说这个值本身代表着缺失, 或者这个值本身无意义, 比如…

各省份经济不平等和家庭支出分布数据:恩格尔系数和泰尔指数(2000-2022年)

中国各省的恩格尔系数和泰尔指数数据为我们提供了关于这些地区居民消费结构和收入差距的了解。 恩格尔系数是衡量居民生活水平和消费结构的一个重要指标&#xff0c;它表示食品支出占家庭总支出的比例。通常&#xff0c;恩格尔系数较低表明居民的生活水平较高。 泰尔指数则是…

ChatGPT时代对大数据应用的展望

前言&#xff1a; 2022年底&#xff0c;科技圈有个爆炸性新闻&#xff0c;ChatGPT的诞生&#xff0c;引发了世界范围内的震惊&#xff1b;人工智能在与人交流上有了划时代的技术突破&#xff0c;可以和人深入的理解交流&#xff0c;让许多公司和领域对这项技术有了更多遐想。对…