栈----3.字符串解码

【大模型微调】魔搭社区GPU进行LLaMA-Factory微调大模型自我认知 本教程介绍如何使用魔搭社区GPU资源和LLaMA-Factory工具进行大模型微调。主要内容包括环境配置、工具安装、模型训练和效果评估。通过LoRA算法进行自我认知微调,详细说明了从数据准备到模型导出的完整流程,并提供了参数调优和显存管理等实用技巧,帮助读者快速掌握大模型定制化训练方法。 阅读详情

394. 字符串解码 - 力扣(LeetCode)

/**

        k[encoded_string] ---> k个连续的s; encoded_string = k[encoded_string](可嵌套)

        解码规则:

                1.将所有字符压入栈中,直到遇到']' ---> 当前层级的encoded_string读取完毕,开始转换

                2.弹出栈,将弹出的元素拼接,直到遇到'[' ---> 当前层级的encoded_string转化完毕

                3.继续弹出直到栈顶元素不为数字,k读取完毕,重复拼接k次重新入栈 ---> 当前k[encoded_string]转码完毕

                4.继续读取字符串,重复上述流程直到转换完毕为止

*/

class Solution {
    /**
        k[encoded_string] ---> k个连续的s; encoded_string = k[encoded_string](可嵌套)
        解码规则:
                1.将所有字符压入栈中,直到遇到']' ---> 当前层级的encoded_string读取完毕,开始转换
                2.弹出栈,将弹出的元素拼接,直到遇到'[' ---> 当前层级的encoded_string转化完毕
                3.继续弹出直到栈顶元素不为数字,k读取完毕,重复拼接k次重新入栈 ---> 当前k[encoded_string]转码完毕
                4.继续读取字符串,重复上述流程直到转换完毕为止
    */
    public String decodeString(String s) {
        //利用栈进行解码
        Deque<String> stack = new ArrayDeque<>();

        //开始解码
        for(char c : s.toCharArray()) {
            //不为']',将字符入栈
            if(c != ']') {
                 stack.push(String.valueOf(c));
            } 
            
            //遇到']',当前层级的encoded_string读取完毕,开始转换
            else {
                //临时保存拼接后的元素
                StringBuilder tempStr = new StringBuilder();

                //将元素弹出栈并拼接,直到遇到'['
                while(!stack.peek().equals("[")) { //代表当前层级的encoded_string转化完毕
                    //弹出元素并进行拼接(新元素拼接到首位)
                    tempStr.insert(0,stack.pop());
                }
                stack.pop(); //弹出'['
                
                //继续弹出元素,直到不为数字 ---> 读取K
                StringBuilder repeatCount = new StringBuilder();
                while(!stack.isEmpty() && Character.isDigit(stack.peek().charAt(0))) { //采用peek,避免弹出不该弹出的元素
                    repeatCount.insert(0,stack.pop());
                }
                
                //得出K,开始重复拼接K次
                int k =  Integer.parseInt(repeatCount.toString());
                StringBuilder repeated = new StringBuilder();
                for(int i = 0; i < k; i++) {
                    repeated.insert(0,tempStr);
                }

                //拼接完毕,重新入栈
                stack.push(repeated.toString());
            }
        }

        //解码完毕,拼接最后结果
        StringBuilder result = new StringBuilder();
        while (!stack.isEmpty()) {
            result.insert(0, stack.pop()); //注意顺序
        }
        return result.toString();
    }
}

别再被骚扰了!手把手教你彻底卸载阿里云盾(安骑士)并封禁其IP段 本文详细指导如何彻底卸载阿里云盾(安骑士)并封禁其IP段,帮助用户夺回服务器控制权。从识别监控组件到执行官方卸载脚本,再到手动清理残留文件和配置iptables规则,确保完全阻断云盾通信。适用于追求极致性能或需要完全自主控制的环境。 阅读详情

相关推荐

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 121

『Python3』LeetCode394 使用栈进行字符串解码

『Python3』使用栈进行字符串解码

weixin_45676126的博客 265

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 469

2021-3-30 394. 字符串解码(辅助栈)

注: ①char转int的简单方法: int=char-'0’ 题目: 题解: class Solution { public: string decodeString(string s) { stack nums; stack str; string answer; int nums=0; for(auto i:s){ if(i>=‘0’&&i<=‘9’){ nums=nums*10+i-‘0’; } if((i>=‘a’&&i<=‘z’)||(i&

TABE_的博客 140

吃透Chisel语言.04.Chisel基础(一)——信号类型和常量

开始肯定是介绍Chisel的基础内容了,《Chisel基础》这一部分主要会介绍数字设计中的两个基本组件:组合电路和触发器。这俩基本组件都不复杂,但是组合在一起就可以得到规模很大、功能也很强大的数字电路了。 第一部分我们就简单地看看Chisel中的信号类型和常量,在上一篇文章中也有相关介绍,其中还包括和Verilog之间的对比。......

github-3rr0r的博客 3823

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1330

3.24 leetcode 字符串解码 (栈 中等)

StringBuffer向String转: String str = sb.toString(); StringBuffer复制后,会改变原来的值, 1.String在修改时不会改变对象自身,在每次对String类型进行改变的时候其实都等同于生成了一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String。 2.StringBuffer在修改时会改变对象自身 每次结果都会对StringBuffer对象本身进行操作,而不是生成新的对象,再改变对象引用。所..

qq_37602161的博客 128

Cocos Creator实战:5步搞定棋牌游戏大厅场景开发(附完整代码)

本文详细介绍了使用Cocos Creator 3.8开发棋牌游戏大厅的5个关键步骤,包括工程配置、动态UI系统实现、核心交互功能开发、性能优化及调试发布技巧。通过模块化代码和实战案例,帮助开发者快速构建高交互性的棋牌游戏大厅,提升用户留存率。

weixin_29002209的博客 356

【394. 字符串解码】辅助栈+递归(python3)

题目描述 https://leetcode-cn.com/problems/decode-string/ 思路题解 辅助栈 https://leetcode-cn.com/problems/decode-string/solution/decode-string-fu-zhu-zhan-fa-di-gui-fa-by-jyd/ class Solution: def decodeString(self, s: str) -> str: stack, res, multi = [

戴某某 156

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1579

SpringBoot整合JWT实战:从零构建无状态认证系统,详解Token生成、验证与安全最佳实践

JWT在SpringBoot中的实现与应用 摘要:本文介绍了JWT(JSON Web Token)的基本概念、与Session机制的对比,以及SpringBoot项目中JWT的整合实现。JWT由Header、Payload和Signature三部分组成,具有无状态、跨域支持等优势。文章详细展示了如何在SpringBoot项目中配置JWT环境,封装JWT工具类来实现Token的生成、解析和验证功能,包括密钥管理、自定义声明、签名验证等核心操作。通过对比表格和生活化比喻,帮助读者理解JWT与传统Session的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1775

栈---字符串解码

题目 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[...

AndyJson的博客 720

搞懂 ABAP 里的 Language Settings:登录语言、文本环境语言与 sy-langu 的真实含义

SAP系统中语言设置并非单一字段决定,而是由登录语言(logon language)和文本环境语言(text environment language)共同控制。登录语言在会话期间固定,而文本环境语言可通过SET LOCALE语句修改,影响文本处理、排序、异常显示等行为。开发中需区分两者:使用CL_ABAP_SYST方法获取登录语言,通过sy-langu或GET LOCALE获取当前文本环境语言。语言环境切换应谨慎处理并尽快恢复,避免影响会话中其他程序。在多语言场景下,正确处理语言设置对确保文本相关功能正常

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1307

【Day 4 】394. 字符串解码

题目地址(394. 字符串解码) https://leetcode-cn.com/problems/decode-string/ 题目描述 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例

qq_41993170的博客 219

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

刷题记录3---有效的括号+字符串解码+最小栈+只出现一次的数字+多数元素

前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 栈+位运算+投票法

热巴的小哥哥博客 1141

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

(算法)字符串解码————<栈—模拟>

【代码】(算法)字符串解码————<栈—模拟>

2301_79580018的博客 650

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

394. 字符串解码

地址: 力扣https://leetcode-cn.com/problems/decode-string/ 题目: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a..

mrbone9的博客 375

leetcode 394. 字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k ,例如不会出现像 3a 或 2[4] 的输入。 题解: 1.一个经过编码的字符串 2.返回它解码后的字符串 3.输入字符串总是有效的..

j_thame_myhome的博客 340

394. 字符串解码-辅助栈

一、题目描述 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例 1: 输入:s = "3[a]2[bc]" 输出:"aaabcbc" 示例 2:

hequnwang10的博客 120

[Leedcode][JAVA][第394题][字符串解码][栈][类型转换]

【问题描述】[中等] 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例: s = "3[a]2[bc]", 返回 "aaabcbc". s

dadongwudi的博客 269

CodeTop093 字符串解码

字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的encoded_string正好重复k次.注意k保证为正整数 你可以认为输入字符串总是有效的:输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。 思路:从后往前压入栈,如果是"]“就入栈,如果是字符同样直接入栈(在碰到”["前都是直接入栈.) 如果遇到"[“就开

Oblak_ZY的博客 232

字符串解码 栈与递归

方法一:利用两个栈 public class ZiFuChuanJieMa { public static void main(String[] args) { Solution6 a = new Solution6(); System.out.println(a.decodeString("3[ab]")); } } class Solution6 { public String decodeString(String s) { char[] a = s.

Azadoo的博客 260

Leetcode刷题·394字符串解码

题目: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。 注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k , 例如不会出现像 3a 或 2[4] 的输入。 思路: 这个题利用栈的思想就可以简单的求解 当遇到数字时,暂时记录num 当遇到字母时,将字

loveandstory的博客 202

LeetCode 394. 字符串解码(Java代码)

辅助栈 | 递归——使用全局变量 | 递归——使用局部变量 递归应该优先使用局部变量

r'q'x't 的博客 277

[LeetCode]394. 字符串解码

题目 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例: s = "3[a]2[bc]", 返回 "aaabcbc". s = "3[a2[c]]"

zaker123的博客 161

小米面试:字符串解码

题目: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例: s = "3[a]2[bc]", 返回 "aaabcbc". s = "3

377
上一篇: 栈----2.最小栈
下一篇: 栈----4.每日温度
码破苍穹ovo
博客等级 码龄2年 377粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值