394字符串解码

该博客介绍了如何解决字符串解码问题,特别是处理嵌套情况。通过使用栈数据结构,遵循先进后出的原则,先处理内层括号,再处理外层。在入栈时清空原有内容,出栈时更新字符串。解析过程需要注意循环起始点、栈的使用以及类型转换等细节。
摘要由CSDN通过智能技术生成

leetcode刷题


394.字符串解码

示例 1:
输入:s = “3[a]2[bc]”
输出:“aaabcbc”
示例 2:
输入:s = “3[a2[c]]”------嵌套的!!!
输出:“accaccacc”

解题思路:因为涉及到嵌套的,所以就是先处理内再处理外,也就是先进后出,所以采用栈,,,,,遇到:[ 入栈 , 遇见: ] 出栈

注意事项:
1.入栈的时候,一定要清空原来的str和num,新建一个—cc
2.出栈的时候,str首先是当前的进行for循环的,之后才是str = str.pop().append(str)
3.注意循环的时候i=1开始
4.Stack numStack
5.Stack strStack
6.注意一些转换!!stringBuilder到string,是toString()

1.定义2个栈,一个是存放字符串的结果集strStack;一个是存放数字集numStack
2.定义2个stringbuilder,分别是加入到字符串的str、加入到数字的num
3.3[a2[c]] 无非是三种情况:
(1)如果是数字,则num.append()2)如果是[ ,则入栈;数字栈numStack中加入之前获取到的数字字符串num;字符串栈strStack中加入当前字符串str;***然后重新实例化str和num,用于里层的字符操作!!!!(如果没有新建地话,会出现很多次循环???如果没有清空地话,当前地str=ac了,循环地时候就是acac了)***3)如果是],则出栈;numStack数字栈出栈,出栈的数值int count = numStack.pop(),count是代表str循环的次数,for循环,然后不断地str.append(stringInner);最后strStack出战,然后拼接str:str = strStack.pop().append(str)
!!!注意:这里
(4)如果是字符;直接str.append();


package 左神.leetcode;
import java.util.Stack;

public class main14 {
   
    public static void main(String[] args) {
   
        String str = "3[a2[c]]"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值