当前位置: 首页 > news >正文

【leetcode】394. 字符串解码

题目链接:力扣

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

 这道题……好绕啊 以至于我看题解的时候都看了好久  才明白了。

首先不可避免的是,要记录两个值,一个是字符串,一个是字符串重复的次数,即数字

考虑有嵌套[]的情况下(如示例2:3[a2[c]] )由于在遍历字符串s的过程中,会冲掉前面保存的数组和字符串,所以要选用栈来对字符串和数字进行保存

这里用到两个栈,(也有人用一个栈的 stack<pair<string, int>> st,其本质也是两个栈,为了更清楚的表达,这里我们采用两个栈)

首先定义了两个栈

stack<string> Mystack;

stack<int> Numstack;

然后以此遍历字符串s

遍历字符有四种情况
        //1、如果是数字 将数字转成整型数字等待处理
        //2、如果是字符 将字符添加到当前临时字符串中
        //3、如果是'['  将当前数字和临时字符串添加到各自栈中
        //4、如果是']'  将数字和字符栈各取出,然后拼接成新的临时字符串

    string decodeString(string s) {stack<string> Mystack;stack<int> Numstack;string res = "";string temp="";  //记录循环数for(int i=0; i<s.size();i++){if('0'<=s[i] && s[i] <='9'){temp += s[i];continue;}else if(s[i] == '['){int count = atoi(temp.c_str());Numstack.push(count);Mystack.push(res);temp = "";res = "";}else if('a'<=s[i] && s[i]<='z'){res += s[i];   }else if(s[i] == ']'){ string pre  = Mystack.top();     //当前左括号之前的字符串int n = Numstack.top();          //当前左括号之前的数字string cur;                      //当前右括号内的字符串for(int i=0; i<n;i++)cur+=res;res = pre + cur;Numstack.pop();Mystack.pop();}}return res;}

相关文章:

【leetcode】394. 字符串解码

题目链接&#xff1a;力扣 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字符串中没…...

系统架构设计高级技能 · 系统质量属性与架构评估(二)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

魅族Pandaer手机壳

Pandaer的设计真是非常好看啊&#xff01;像是手机壳的花样就特别多&#xff0c;还分出来很多系列&#xff0c;我比较喜欢它的亮面设计&#xff0c;入手了一款iPhone的&#xff0c;花色叫做“失控街头”&#xff0c;壳内部也是亮的&#xff0c;看起来特别浮夸&#xff0c;潮里潮…...

F5洞察2023年网络威胁,助力网络安全防护

2023已经过半&#xff0c;关于网络安全防护的相关讨论话题热度始终居高不下。对于网络安全领域的从业者来说&#xff0c;应当对相关的前瞻分析有所了解。前段时间&#xff0c;我阅读了F5 安全运营中心工程师对威胁网络安全的预测&#xff0c;深受启发&#xff0c;故此选取了几则…...

从零构建深度学习推理框架-4 框架中的算子注册机制

今天要讲的这一注册机制用到了设计模式中的工厂模式和单例模式&#xff0c;所以这节课也是对两大设计模式的一个合理应用和实践。KuiperInfer的注册表是一个map数据结构&#xff0c;维护了一组键值对&#xff0c;key是对应的OpType&#xff0c;用来查找对应的value&#xff0c;…...

使用vscode+ssh免密远程Linux

使用vscodessh免密远程Linux 使用 SSH 密钥对&#xff1a;使用 SSH Agent&#xff1a;ssh-agent的使用场景 使用 SSH 密钥对&#xff1a; 确保你的本地机器上已经生成了 SSH 密钥对。如果没有&#xff0c;请使用以下命令生成密钥对&#xff1a; ssh-keygen -t rsa这将在 ~/.ssh…...

rust-异步学习

rust获取future中的结果 两种主要的方法使用 async: async fn 和 async 块 async 体以及其他 future 类型是惰性的&#xff1a;除非它们运行起来&#xff0c;否则它们什么都不做。 运行 Future 最常见的方法是 .await 它。 当 .await 在 Future 上调用时&#xff0c;它会尝试把…...

【Azure】office365邮箱测试的邮箱账号因频繁连接邮箱服务器而被限制连接 引起邮箱显示异常

azure微软office365邮箱会对频繁连接自身邮箱服务器的IP地址进行&#xff0c;连接邮箱服务器IP限制&#xff0c;也就是黑名单&#xff0c;释放时间不确定&#xff0c;但至少一天及以上。 解决办法&#xff0c;换一个IP&#xff0c;或者新注册一个office365邮箱再重试。 以下是…...

重新登录成功和登录失败处理器

<template><div class="login"><el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"><h3 class="title">Java1234 Vue3 后台管理系统</h3><el…...

【Spring】(三)Spring 使用注解存储和读取 Bean对象

文章目录 前言一、使用注解储存 Bean 对象1.1 配置扫描路径1.2 类注解储存 Bean 对象1.2.1 Controller&#xff08;控制器存储&#xff09;1.2.2 Service&#xff08;服务储存&#xff09;1.2.3 Repository&#xff08;仓库存储&#xff09;1.2.4 Component&#xff08;组件储存…...

ParallelCollectionRDD [0] isEmpty at KyuubiSparkUtil.scala:48问题解决

ParallelCollectionRDD [0] isEmpty at KyuubiSparkUtil.scala:48问题解决 这个问题出现在使用Kyubi Spark Util处理ParallelCollectionRDD的过程中&#xff0c;具体是在KyubiSparkUtil.scala文件的第48行调用isEmpty方法时出现的。该问题可能是由以下几个原因引起的&#xff1…...

---------------- 部署 Zookeeper 集群 ----------------

部署 Zookeeper 集群 1.安装前准备2.安装 Zookeeper修改配置文件在每个节点上创建数据目录和日志目录在每个节点的dataDir指定的目录下创建一个 myid 的文件配置 Zookeeper 启动脚本 //准备 3 台服务器做 Zookeeper 集群 192.168.109.1 192.168.109.2 192.168.109.3 1.安装前准…...

SpringBoot 依赖管理和自动配置---带你了解什么是版本仲裁

&#x1f600;前言 本篇博文是关于SpringBoot 依赖管理和自动配置&#xff0c;希望能够帮助到您&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您…...

c语言每日一练(2)

前言&#xff1a; 每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…...

代码随想录第三十七天

代码随想录第三十七天 Leetcode 738. 单调递增的数字 Leetcode 738. 单调递增的数字 题目链接: 单调递增的数字 自己的思路:完全想不到&#xff01;&#xff01; 正确思路:大致思路是从后向前遍历&#xff0c;不可以从前向后&#xff0c;如果从前向后没有保证单调递增的顺序&…...

Linux进程间通信--ftok

在C语言中&#xff0c;ftok函数用于生成一个唯一的键值&#xff0c;该键值通常用于创建共享内存&#xff0c;消息队列和信号量等系统资源的标识符。 ftok函数原型入下&#xff1a; key_t ftok(const char *pathname, int proj_id); 参数说明&#xff1a; pathname&#xff1a…...

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…...

梳理日常开发涉及的负载均衡

负载均衡是当前分布式微服务时代最能提及的词之一&#xff0c;出于对分层、解耦、弱依赖、可配置、可靠性等概念的解读&#xff0c;一对一的模式变得不再可信赖&#xff0c;千变万化的网络环境中&#xff0c;冗余和备份显得格外重要&#xff0c;稍大型的系统就会存在大量微服务…...

IEEE 754 浮点数运算

​​​​​​...

阿里巴巴Java开发手册学习记录

阿里巴巴Java开发手册学习记录 一、编程规约 1.命名风格 严禁使用英文 拼音混合使用 类名应所有单词的首字母大写&#xff0c;除了&#xff08;UserDO&#xff0c;XxxDTO, XxxPo等&#xff09; 常量的命名应该是大写 单词间用下划线连接 抽象类的应以Abstract/Base开头 …...

鱼皮 AI 导航网站,突然起飞了!

大好家&#xff0c;我是程序员鱼皮。 去年 11 月&#xff0c;我带团队开发了一个 完全免费 的网站&#xff0c;也就是「鱼皮 AI 导航」。 如今 AI 真的太火了&#xff0c;一定是未来的大趋势&#xff1b;再加上很多关注我的朋友私信我&#xff0c;问怎么获取 AI 工具和教程&am…...

SMU Debug Tool技术解析与实战指南:释放AMD Ryzen处理器性能潜力

SMU Debug Tool技术解析与实战指南&#xff1a;释放AMD Ryzen处理器性能潜力 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: …...

CUDA实战:如何用Swizzle技巧彻底解决MMA指令中的Bank Conflict问题

CUDA实战&#xff1a;如何用Swizzle技巧彻底解决MMA指令中的Bank Conflict问题 在Tensor Core编程中&#xff0c;共享内存的Bank Conflict问题一直是影响性能的关键瓶颈。本文将深入剖析ldmatrix指令与共享内存的交互机制&#xff0c;通过位运算级别的Swizzle技巧&#xff0c;在…...

PostCSS-CSSNext终极指南:10个关键检查点确保CSS代码质量与兼容性

PostCSS-CSSNext终极指南&#xff1a;10个关键检查点确保CSS代码质量与兼容性 【免费下载链接】postcss-cssnext postcss-cssnext has been deprecated in favor of postcss-preset-env. 项目地址: https://gitcode.com/gh_mirrors/po/postcss-cssnext PostCSS-CSSNext是…...

贾子科学定理(Kucius Science Theorem)的哲学批判与理论重构:从证伪主义到可持续运行的科学范式研究

贾子科学定理&#xff08;Kucius Science Theorem&#xff09;的哲学批判与理论重构&#xff1a;从证伪主义到可持续运行的科学范式研究1. 引言1.1 研究背景与问题提出当代科学哲学正处于深刻的范式转换期。传统的波普尔证伪主义面临着前所未有的理论困境和实践挑战&#xff0c…...

让ai成为你的mybatis导师:用快马智能优化sql与解决映射难题

让AI成为你的MyBatis导师&#xff1a;用快马智能优化SQL与解决映射难题 作为一个长期使用MyBatis的开发者&#xff0c;我深知SQL优化和复杂映射配置的痛点。最近尝试了InsCode(快马)平台的AI辅助功能&#xff0c;发现它确实能成为MyBatis开发的得力助手。下面分享几个典型场景…...

AI人工神经网络核心原理与深度学习机制解析

AI人工神经网络核心原理与深度学习机制解析...

从一线装维经验看,扩展式智能插座更适合多路监测与项目落地

作为一名做了12年现场电气安装与运维的一线装维人员&#xff0c;今天想聊聊智能插座。这些年接触过的智能插座不少&#xff0c;市面上的产品确实五花八门&#xff0c;外观、功能、结构都不一样。选择多了&#xff0c;对用户来说未必是好事&#xff0c;反而更容易挑花眼。尤其一…...

2026AIGC 短剧出海全链路落地服务测评

2026 年 AIGC 短剧出海行业已迈入精细化商业落地阶段&#xff0c;专业全链路服务商与AI 视频生成平台的赛道分化成为行业发展的核心特征&#xff0c;二者依托差异化的服务模式、能力体系与价值输出&#xff0c;精准覆盖不同出海主体的需求场景。集之互动作为深耕短剧出海领域的…...

收藏必备!小白程序员轻松入门大模型,解锁医学AI新技能

收藏必备&#xff01;小白程序员轻松入门大模型&#xff0c;解锁医学AI新技能 大语言模型在医疗健康领域应用初见成效&#xff0c;但存在知识体系固化的局限。本文介绍了检索增强生成&#xff08;RAG&#xff09;技术&#xff0c;该技术模拟医生查阅最新文献的工作逻辑&#xf…...