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

Golang | Leetcode Golang题解之第385题迷你语法分析器

题目:

题解:

func deserialize(s string) *NestedInteger {if s[0] != '[' {num, _ := strconv.Atoi(s)ni := &NestedInteger{}ni.SetInteger(num)return ni}stack, num, negative := []*NestedInteger{}, 0, falsefor i, ch := range s {if ch == '-' {negative = true} else if unicode.IsDigit(ch) {num = num*10 + int(ch-'0')} else if ch == '[' {stack = append(stack, &NestedInteger{})} else if ch == ',' || ch == ']' {if unicode.IsDigit(rune(s[i-1])) {if negative {num = -num}ni := NestedInteger{}ni.SetInteger(num)stack[len(stack)-1].Add(ni)}num, negative = 0, falseif ch == ']' && len(stack) > 1 {stack[len(stack)-2].Add(*stack[len(stack)-1])stack = stack[:len(stack)-1]}}}return stack[len(stack)-1]
}
http://www.lryc.cn/news/433181.html

相关文章:

  • 【Java 优选算法】双指针(上)
  • 【自动驾驶】控制算法(八)横向控制Ⅰ | 算法与流程
  • Android SSE 单向接收数据
  • 排序《数据结构》
  • flutter 提示框2 Dialog
  • 如何选择SDR无线图传方案
  • 关于Python类中方法__init__()解析
  • 微信小程序 自定义组件
  • Mac+Pycharm配置PyQt6教程
  • 如何保证Redis与Mysql双写一致性?
  • 9.8笔试记录
  • SRE-系统管理篇
  • 傅里叶级数,傅里叶变换
  • 零知识证明在BSV网络上的应用
  • 无任何门槛!3分钟5步,发布属于你的第一个智能体小程序,99%的人还不知道怎么用
  • 怎么强制撤销excel工作表保护?
  • 每天学习一个字符串类函数之memmove函数
  • 【机器人工具箱Robotics Toolbox开发笔记(十三)】三自由度机器人圆弧轨迹规划仿真实例
  • 软件工程-图书管理系统的概要设计
  • springboot 整合swagger
  • Flutter 进阶:绘制加载动画
  • 【深度学习】梯度下降法
  • 基于机器学习的电商优惠券核销预测
  • PHP-FPM 远程代码执行漏洞(CVE-2019-11043)复现
  • Rust : 从事量化的生态现状与前景
  • Java项目——苍穹外卖(一)
  • 20240908 每日AI必读资讯
  • HNU-2023电路与电子学-实验3
  • html基础语法 看这一篇就够了!
  • 【redis】redis的特性和主要应用场景