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

做app布局参考哪个网站帮老板做网站

做app布局参考哪个网站,帮老板做网站,网站设置时间段访问,云南移动和生活app安装题目 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格&#xff0…

题目

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

一、代码实现

func decodeString(s string) string {numStack := []int{}strStack := []string{}currStr := ""num := 0for _, ch := range s {if ch >= '0' && ch <= '9' {num = num*10 + int(ch-'0') // 处理多位数} else if ch == '[' {numStack = append(numStack, num)strStack = append(strStack, currStr)num = 0currStr = "" // 重置状态} else if ch == ']' {repeat := numStack[len(numStack)-1]numStack = numStack[:len(numStack)-1]prevStr := strStack[len(strStack)-1]strStack = strStack[:len(strStack)-1]currStr = prevStr + strings.Repeat(currStr, repeat) // 拼接结果} else {currStr += string(ch) // 累积字符}}return currStr
}

二、算法分析

1. 核心思路
  • 栈结构特性:利用双栈(数字栈和字符串栈)处理嵌套结构:
    • 数字栈存储重复次数 k
    • 字符串栈存储括号外的累积结果
  • 动态构建:遍历时根据字符类型更新状态:
    • 遇到数字时构建多位数(如100100组成)
    • 遇到[时缓存当前状态并重置
    • 遇到]时弹栈并生成重复字符串
2. 关键步骤
  1. 数字解析:连续数字字符转换为整型(如"123"→123)
  2. 状态缓存:左括号触发压栈操作,保存当前字符串和重复次数
  3. 字符串生成:右括号触发弹栈,拼接重复后的字符串
3. 复杂度
指标说明
时间复杂度O(n)单次遍历,每个字符处理一次
空间复杂度O(n)栈深度与嵌套层数正相关

三、图解示例

在这里插入图片描述

四、边界条件与扩展

1. 特殊场景验证
  • 无括号字符串abc → 直接返回原字符串
  • 单层嵌套3[a]aaa
  • 多层嵌套2[3[cd]]cdcdcdcdcdcd
  • 混合嵌套ab2[c3[d]e]abcdddecddde
2. 多语言实现
# Python实现(栈+字符串拼接)
def decodeString(s):num_stack, str_stack = [], []curr_str, num = "", 0for ch in s:if ch.isdigit():num = num * 10 + int(ch)elif ch == '[':num_stack.append(num)str_stack.append(curr_str)num, curr_str = 0, ""elif ch == ']':curr_str = str_stack.pop() + curr_str * num_stack.pop()else:curr_str += chreturn curr_str
// Java实现(StringBuilder优化)
public String decodeString(String s) {Stack<Integer> numStack = new Stack<>();Stack<StringBuilder> strStack = new Stack<>();StringBuilder curr = new StringBuilder();int num = 0;for (char ch : s.toCharArray()) {if (Character.isDigit(ch)) {num = num * 10 + (ch - '0');} else if (ch == '[') {numStack.push(num);strStack.push(curr);curr = new StringBuilder();num = 0;} else if (ch == ']') {StringBuilder temp = strStack.pop();int repeat = numStack.pop();temp.append(curr.toString().repeat(repeat));curr = temp;} else {curr.append(ch);}}return curr.toString();
}

五、总结与扩展

1. 核心创新点
  • 双栈协同:数字栈与字符串栈分离,逻辑清晰
  • 线性时间复杂度:单次遍历即完成复杂嵌套结构的解析
2. 扩展应用
  • 模板引擎:处理类似{{repeat}}的嵌套标签
  • JSON/XML解析:处理层级嵌套的数据结构
  • 数学表达式计算:扩展支持括号优先级运算
3. 性能优化方向
  • 预分配内存:根据输入长度预初始化栈容量
  • 字符串构建优化:使用strings.Builder(Go)/StringBuilder(Java)减少拼接开销
http://www.dtcms.com/a/518030.html

相关文章:

  • 树莓派Pico 2W micropython开发环境搭建
  • 在东营怎么建网站响应式网页需要设计几张图
  • 南宁市网站维护与推广公司网页设计培训哪家机构好
  • 一个vps主机放两个网站 速度财务公司名称大全简单大气
  • 广州网站建设联雅了解网站基本知识
  • 一个云主机可以做多少网站二手书交易网站开发与设计
  • 4.5-中间件之Nginx
  • 新网站应该怎么做珠海软件公司排名
  • wordpress基本设置西宁seo网站建设
  • 下沙网站制作营业执照官网入口
  • 网站建设有待加强西部数码个人网站
  • 淘宝客的api怎么做网站做网站策划一个专利的主题宣传
  • 沙漠网站建设广东深圳建设工程信息网站
  • 石桥铺做网站做网站如何能让外国人看得到
  • 网站开发tt0546wordpress强大播放器
  • 做网站毕业实训报告广州网站排名
  • 手机wap网站如何建设深圳东门老街美食攻略
  • 写作网站排名外贸建站 智能营销
  • 仿58网站怎么做深圳制作网站的公司哪家好
  • 做网站如何处理并发问题用ps做网站得多大像素
  • vbs自学笔记(未完更)
  • 塑胶原料 东莞网站建设松花江避暑城建设网站
  • 济宁广告公司网站建设服装类电子商务网站建设报告
  • 南宁市营商环境建设局网站百度小说搜索风云排行榜
  • 传统网站和手机网站的区别是什么手机网站欢迎页面设计
  • 注册网站账号违法吗wordpress副标题代码
  • Hugging Face 热门模型排行榜 - 2025年10月22日 Top 10
  • 网站做seo屏蔽搜索网站 签约
  • 二级域名做网站甘南网站建设
  • 新浪网网站的建设费用预算郑州教育信息网