代码随想录| day11|栈与队列part02 ● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值

news2024/11/17 13:19:11

20. 有效的括号

链接:代码随想录

 阅读答案并二刷。

class Solution {
public:
    bool isValid(string s) {
        int n=s.size();
        int i=0;
        //建立括号栈
         stack<char>sta;
        while(i<n)
        {
            char temp=s[i];
            if(temp=='('||s[i]=='{'||s[i]=='[')
            {
                sta.push(temp);
            }
            else
            {
                if(sta.empty())
                {
                    return false;
                }
                else{
                    char top=sta.top();
                    if((temp==')'&&top=='(')||(temp=='}'&&top=='{')||(temp==']'&&top=='['))
                    {
                        sta.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
                
            }
            i++;

        }
        if(!sta.empty())//-----------------容易落下,这种情况特殊讨论s ="["
        {
            return false;
        }
        return true;

    }
};

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

链接:代码随想录

 大概看了一下,由于是简单题所以没重新做。

class Solution {
//这道题很让人尴尬,我觉得这道题和上一道基本一样,而且总是简单题,简单题不考呜呜呜
public:
    string removeDuplicates(string s) {
        int n=s.size();
        int i=0;
        stack<char>sta;
        while(i<n)
        {
            char tmp=s[i];
            if(!sta.empty() && sta.top()==tmp)
            {
                 sta.pop();
            }
            else
            {
                sta.push(tmp);
            }
            i++;
        }
        string res="";
        while(!sta.empty())
        {
            char ch=sta.top();
            res.append(1,ch);
            sta.pop();
        }
        reverse(res.begin(),res.end());
        return res;

    }
};

 

150. 逆波兰表达式求值

链接:代码随想录

 

 有个字符串转int的函数

把“-11” 转为 -11

注:C++的switch只能接受数值、字符型(不可以字符串)

class Solution {
/*
只需要一个栈,遇到数字就push,遇到符号就pop出两个数字,然后计算,再push回栈
*/
public:
    int evalRPN(vector<string>& s) {
        int n=s.size();
        int i=0;
        stack<int>sta;//答案及所有中间计算结果可以用 32 位 整数表示
        while(i<n)
        {
            if((s[i]!="+")&&(s[i]!="-")&&(s[i]!="*")&&(s[i]!="/"))//是数字push进栈
            {
                sta.push(stoi(s[i]));
            }
            else//不是数字是符号
            {
                if(sta.size()<2)//当前栈中数字小于2,无法进行计算,异常
                {
                    return INT_MAX;
                }
                else
                {
                    int num1=sta.top();
                    sta.pop();
                    int num2=sta.top();
                    sta.pop();
                    if(s[i]=="+")
                    {
                        sta.push(num1+num2);
                    }
                    else if(s[i]=="-")
                    {
                        sta.push(num2-num1);
                    }
                    else if(s[i]=="*")
                    {
                        sta.push(num2*num1);
                    }
                    else{
                        sta.push(num2/num1);
                    }
                }
               

            }
            i++;     
        }
        return sta.top();

    }
};

 

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

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

相关文章

Halcon 光盘一维码识别 曲面一维码识别 识别光盘上的条形码(极坐标变换,将曲面的一维码转成矩形的一维条码)

文章目录 1 问题描述2 关键代码演示2.1 分割CD上包含条形码的环2.2 极坐标变换 将环状条码转成矩形条码3 完整代码1 问题描述 如图 识别光盘上的条形码 图片路径 C:\Users\hp\AppData\Roaming\MVTec\HALCON-22.11-Steady\examples\images2 关键代码演示 2.1 分割CD上包含条形…

项目管理专业人员能力等级评价CSPM(国标评级)你想知道的这都有

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

Vue中如何进行文件预览与打印?

Vue中如何进行文件预览与打印&#xff1f; 在Vue应用中&#xff0c;有时我们需要实现文件预览和打印的功能。比如&#xff0c;我们可能需要预览并打印PDF文件、图片文件等。本文将介绍如何在Vue中实现文件预览和打印的功能&#xff0c;并提供相应的代码示例。 文件预览 PDF文…

“混战”大模型,知乎、小红书、快手各有所长

配图来自Canva可画 一直以来&#xff0c;追逐风口都是互联网企业的天性。因此&#xff0c;继元宇宙风口之后&#xff0c;横空出世并火遍全国的AIGC和ChatGPT&#xff0c;便又成为了各行业企业追逐的焦点。在此背景下&#xff0c;无论是国内互联网大厂&#xff0c;还是科技公司…

力扣笔记(每日随机一题)—— 打强整数

问题&#xff08;中等&#xff09; 给定三个整数x 、 y 和 bound &#xff0c;返回 值小于或等于 bound 的所有 强整数 组成的列表 。 如果某一整数可以表示为 x i y j x^i y^j xiyj &#xff0c;其中整数 i > 0 且 j > 0 i > 0 且 j > 0 i>0且j>0&a…

jmeter009:用户自定义变量

添加路径&#xff1a;线程组>配置元件>用户自定义变量 (用户自定义变量)元件的使用&#xff1a;

vue 打开重复页签

先上图 这两个红色框线实际都是产品详情页面&#xff0c;用产品名称替代了页面的title 1、首先在router/index.js配置路由 {path: /productDetail,component: Layout,hidden: true,children: [{path: productDetail/:productId(\\d), //必须该种方法传递参数component: () &…

超高频工业rfid读头对比高频读头有哪些优势?

超高频的工作频段主要在860MHz~960MHz之间&#xff0c;对比高频RFID来说&#xff0c;超高频技术的传输速度更快&#xff0c;读取距离也更远&#xff0c;批量群读的性能也更好&#xff0c;因此在工业、物流与供应链等领域都有非常广泛的应用。 超高频工业rfid读头对比高频读头有…

Java通过jni调用C语言函数,IntelliJ IDEA,CLion,动态链接库dll,本地方法,native

Java通过jni调用C语言函数 使用的工具 IntelliJ IDEACLion 开始之前的注意事项 确保安装了mingw并配置了环境变量&#xff08;下载地址&#xff1a;https://udomain.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds…

【2023】华为OD机试真题Java CC++ Python JS Go-题目0245-信号发射和接收

题目0245-信号发射和接收 题目描述 有一个二维的天线矩阵,每根天线可以向其他天线发射信号,也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收东向或南向的信号。 每根天线有自己的高度anth,每根天线的高度存储在…

软件之禅(五)Input 出场

黄国强 2023/06/12 这篇文章我们引入新的概念&#xff0c;即输入&#xff08;Input&#xff09;。类似 Output &#xff0c;Input 也有多种输入形式。同样我们也需要做个设计&#xff0c;封装后续的变化。继续上代码。 / // 输入类class Input; using InputPtr std::shared_p…

8. 原子操作类

Atomic 翻译成中文是原子的意思。在化学上&#xff0c;我们知道原子是构成一般物质的最小单位&#xff0c;在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候&#xff0c;一个操作一旦开始&#xff0c;就不会被其他线程干…

SIMD加速矩阵运算

一、SIMD指令简介 SIMD的全称叫做&#xff0c;单指令集多数据&#xff08;Single Instruction Multiple Data&#xff09;。最直观的理解就是&#xff0c;向量计算。比如一个加法指令周期只能算一组数&#xff08;一维向量相加&#xff09;&#xff0c;使用SIMD的话&#xff0…

应届生求职个人简历模板(合集)

应届生求职个人简历模板1 基本信息 姓 名&#xff1a; 性别&#xff1a; 婚姻状况&#xff1a; 民族&#xff1a; 户 籍&#xff1a; 年龄&#xff1a; 现所在地&#xff1a; 身高&#xff1a; 联系电话&#xff1a; 电子邮箱&#xff1a;__ 求职意向 希望岗位&#xff1a;Web前…

【建议】强烈推荐ES6函数自由传参的写法,针对方法体的可扩展性很有帮助

let fun({a,b,c}{a:1,b:2,c:3})>{console.log(a);console.log(b);console.log(c); } 接下来我们即可自由传参&#xff0c;需要什么就传递什么 以上写法非常适用于需求变更的情况下自由传递参数&#xff0c;而且形参的数量、传参先后顺序可以根据业务自由搭配&#xff0c;非常…

Feign接口windows启动调用正常,Linux环境调用404

1、Linux环境启动之后报错 如下&#xff1a; windows 是调用正常得 反复测试好几轮 还是这样 &#xff0c;nacos都是注册进去得 helper-service 调用 xTIMS-Web 解决&#xff1a;FeignClient注解 不配置URL会出现那样问题&#xff0c; 配置URL之后 解决 &#xff0c;不报错了…

延迟队列--DelayQueue(JDK)

JDK自身支持延迟队列的数据结构&#xff0c;其实类&#xff1a;java.util.concurrent.DelayQueue。 我们通过阅读源码的方式理解该延迟队列类的实现过程。 1.定义 DelayQueue:是一种支持延时获取元素的无界阻塞队列。 特性&#xff1a; 线程安全&#xff1b; 内部元素有“…

人工智能算力需求稳增,中国将持续夯实算力底座

中国始终强调科技兴国的重要性。数字经济时代&#xff0c;技术的力量更为凸显。近年来&#xff0c;中国政府相关部门相继发布一系列政策&#xff0c;更加明确了人工智能对于提升中国核心竞争力的重要支撑作用&#xff0c;加上新基建、数字经济等持续利好政策的推动&#xff0c;…

0202性能分析-索引-MySQL

1 索引语法 创建索引 CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name(index_column_name,...);Index_name&#xff1a;规范为idx_表名_字段名... 查看索引 SHOW INDEX FROM table_name;删除索引 DROP INDEX index_name ON table_name;按照下列要求&#xff0c;创建…

仿交易猫链接 跳转APP功能

最新仿交易猫假链接&#xff0c;带有跳转APP功能 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3