leecode-字符串解码-栈

news2024/7/4 5:06:31

题目

题目链接
在这里插入图片描述

分析

用两个栈存储数字、字符串的情况
如果遇到[,就入栈,遇到]就按照数字把字符串出栈,并构造出新的字符串赋给res。
一步步内部解码。

代码

class Solution {
public:
    string decodeString(string s) {
        stack<int> st_int;
        stack<string> st_ss;
        int num=0;
        string res="";
        for(int i=0;i<s.length();i++){
            if(s[i]>='0'&&s[i]<='9'){
                num=num*10+int(s[i]-'0');//计算数字
            }
            else if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){//存储连续的字母
                res=res+s[i];
            }
            else if(s[i]=='['){//遇到左括号,记录数字和字母
                st_int.push(num);
                num=0;
                st_ss.push(res);
                res="";
            }
            else if(s[i]==']'){//遇到右括号,弹出括号内的对应字符串和括号外的数字
                int times=st_int.top();st_int.pop();//数字
                string temp="";
                if(!st_ss.empty()){
                    temp=st_ss.top();
                    st_ss.pop();//获得字符串
                }
                for(int j=0;j<times;j++){//与之前的字符串 构造新的字符串
                    temp+=res;
                }
                res=temp;
            }
        }
        return res;
    }
};

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

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

相关文章

【自监督论文阅读 4】BYOL

文章目录 一、摘要二、引言三、相关工作四、方法4.1 BYOL的描述4.2 Intuitions on BYOL’s behavior&#xff08;BYOL行为的直觉&#xff09;4.3 实验细节 五、实验评估5.1 Linear evaluation on ImageNet&#xff08;ImageNet上的线性评估&#xff09;5.2 Semi-supervised tra…

宝塔面板 - 如何通过宝塔面板设置服务器禁止 Ping?

问题描述 在介绍如何通过宝塔面板设置服务器禁止ping之前&#xff0c;我们先来简单了解一下什么是ping。 Ping 可用于测试网络上IP系统的可用性&#xff0c;也可用于通过监控往返时间和数据包丢失&#xff0c;来测试网络连接的质量。ping 也可以用于识别网络子网&#xff0c;…

数字孪生和GIS结合将为智慧园区带来什么样的改变?

数字孪生和地理信息系统&#xff08;GIS&#xff09;是当今智慧园区发展中的两个重要技术&#xff0c;它们的结合将为智慧园区带来根本性的改变和巨大的发展机遇。这种结合将深刻影响园区的规划、建设、运营和管理&#xff0c;为人们创造更智能、高效、可持续的生活环境。 首先…

真的不想知道文字转语音真人发声免费有哪些软件吗

曾经有一个盲人作家&#xff0c;他热爱写作却无法看到自己的文字成品。直到有一天&#xff0c;他听说了一款文字转语音的软件&#xff0c;可以将他的文字转化为声音&#xff0c;让他能够听到自己的作品。这则故事令我们体会到文字转语音这项技术的重要性。那么&#xff0c;你知…

【⑤MySQL函数】:让你的数据库操作更高效(二)

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL日期时间、条件判断、系统信息、加密、进制转换和IP地址转换函数的讲解✨ 目录 前言一、日期和时间函数二、条件判断函数三、系统信息函数四、加密函数五、进制转换函数六、IP地址转换函数七、总结 一、日期和时…

韦纳VeighNa(VNPY)新手入门到写策略

韦纳VeighNa&#xff08;VNPY&#xff09;新手入门到写策略 1.VeighNa终端如何登录交易&#xff1f;勾选好相应接口和功能启动后在哪输入账号&#xff1f;2.在哪开发策略&#xff1f;策略文件夹在哪&#xff1f;3.如何写策略&#xff1f;如何开发策略&#xff1f;4.有策略模板吗…

离线语音识别芯片IC方案,打造智能眼部按摩仪WTK6900H-C-24SS

随着科技的不断进步&#xff0c;智能化产品已经成为人们日常生活中的一部分。眼部按摩仪作为舒缓眼部疲劳的利器&#xff0c;如今更是加入了离线语音识别芯片IC方案&#xff0c;让使用体验更加智能化、便捷化&#xff0c;WTK6900H-C-24SS离线语音识别芯片IC方案&#xff0c;将为…

Tomcat 8.5 环境搭建指南

文章目录 导言环境搭建总结 导言 欢迎阅读本篇博客&#xff0c;本文将为您提供关于如何搭建Tomcat 8.5环境的详细指南。Tomcat是一个流行的开源Java Servlet容器&#xff0c;它提供了一个运行Java Web应用程序的平台。无论您是新手还是有经验的开发人员&#xff0c;本文都将帮…

Selenium教程__使用switch_to.alert处理弹窗(14)

与switch_to.window 和 switch_to.frame 相比&#xff0c;switch_to.alert的alert方法使用了property 装饰器&#xff0c;所以在使用时alert被当成属性调用。 演示如下 from selenium import webdriverdriver webdriver.Chrome() driver.maximize_window() driver.get("…

推荐一个好用的Python词云展示库-wordcloud

目录标题 前言1.介绍2.使用说明尾语 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 1.介绍 wordcloud是优秀的词云展示第三方库&#xff0c;wordcloud能够将一段文本变成一个词云。 词云就是将词语通过图形可视化的方式&#xff0c;直观和艺术的展示出来。词云在我们的…

Word模板替换,并转PDF格式输出

Poi-tl参考文档地址&#xff1a;http://deepoove.com/poi-tl/1.8.x/#hack-loop-table word模板替换&#xff0c;转pdf 1. 依赖引入&#xff1a;2. word模板配置&#xff1a;3. 示例demo:4 . 效果图 1. 依赖引入&#xff1a; <dependency><groupId>org.apache.poi&…

Unity3D:在 Inspector 中操作

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 在 Inspector 中操作 本页面描述了一些用于控制 Inspector 窗口本身的选项。有关设置游戏对象、脚本和资源的属性的信息&#xff0c;请参阅编辑属性。 Lock the Inspector 通常&…

网络安全零基础学习路线

一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09; 了解网络安全相关法律法规 熟悉基本概念&#xff08;SQL 注入、上传、XSS、CSRF、一句话木马等&#xff09;。 通过关键字&#xff08;SQL 注入、上传、XSS、CSRF、一句话木马等&#…

C. Robot Collisions(暑期集训)

原题链接 题意&#xff1a; 有n个机器人在OX轴上运动&#xff0c;运动范围为[0,m]。 第i个机器人开始位于xi的位置&#xff0c;然后以1单位距离每秒的速度向左或向右运动&#xff0c;当其运动到0点或m点时会调转方向。 如果任意时刻多于一个机器人在同一整数位置&#xff0c;…

【硬件自动化测试--测试软件的设计及实现】测试框架设计及实现!

如何设计并实现自动化框架? 首先,需要了解我们的产品,需要做哪些测试,如有很多硬件产品的测试中,需要用到示波器、频谱仪、信号源等等一系列的仪器,仪器的型号也各有不同,所以在设计框架之前,一定得了解我们的产品。 那么,就以一台服务器为例子,基带部分的测试,包括…

酷开系统 |酷开科技持续创造大屏生命力

在这个信息爆炸的时代&#xff0c;人们对于互联网和智能生活的需求&#xff0c;不再局限于碎片化或工作场景&#xff0c;更多的是延伸至连续化的家庭化使用环境。而智能大屏作为互联网时代下的产物&#xff0c;融合了互联网流媒体的数据处理方式&#xff0c;深受年轻人的青睐&a…

牛客·矩阵取数游戏

矩阵取数游戏 这里我们推一下这个题的精髓&#xff1a; dp[i][j]max(int(b[c][i])dp[i1][j],dp[i][j-1]int(b[c][j])) dp[i][j]2*dp[i][j]假定某一行有两个数x,y; 那么我们有两种选择&#xff1a; 先拿x&#xff0c;再拿y&#xff1a;x*2y*4&#xff1b; 先拿y&#xff0c;再…

Rust in Action笔记 第八章 网络

P253的图展示了网络各层用到的协议Box<dyn std::error::Error>表示一个指针指向的实现了标准错误库的类型&#xff0c;dyn表明这是一个特征对象&#xff08;trait object&#xff09;&#xff0c;是rust里多态的一种实现方式&#xff1b;特征对象和模板对象&#xff08;g…

短视频------Adobe Photoshop 笔记总结

一、Adobe Photoshop 使用方式方法 ctrlc/v 复制 粘贴 ctrlx 剪切 ctrla 全选 ctrlz撤销 ctrls保存 ENTER 回车 换行 CTRL 调取定界框 CAPSLOCK 大写锁定 Esc 退出 Delete 删除 Backspace 退格 Ctrl shi alt 三个控制键 Shi 连选 ctrl 加选/减选 锁屏 WinL 打开运行命令窗口 …

vue实现输入网址生成二维码、解码、下载、更改功能

功能&#xff1a; 1.输入网址生成二维码 2.二维码可以下载 3.可以更改二维码中心的图片 4.可以通过本地相册的二维码进行解码 1.下载三个插件 下载vue-qr&#xff0c;用于生成二维码 npm install vue-qr 下载vue-jimp并指定版本号&#xff0c;最新版不行&#xff0c;实…