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

题目:

题解:

Go 复制代码
func deserialize(s string) *NestedInteger {
    index := 0
    var dfs func() *NestedInteger
    dfs = func() *NestedInteger {
        ni := &NestedInteger{}
        if s[index] == '[' {
            index++
            for s[index] != ']' {
                ni.Add(*dfs())
                if s[index] == ',' {
                    index++
                }
            }
            index++
            return ni
        }

        negative := s[index] == '-'
        if negative {
            index++
        }
        num := 0
        for ; index < len(s) && unicode.IsDigit(rune(s[index])); index++ {
            num = num*10 + int(s[index]-'0')
        }
        if negative {
            num = -num
        }
        ni.SetInteger(num)
        return ni
    }
    return dfs()
}
相关推荐
Java小混子15 小时前
golang项目CRUD示例
开发语言·后端·golang
想搞艺术的程序员15 小时前
Go 优雅关闭实践指南:从原理到框架落地
开发语言·后端·golang
爱coding的橙子19 小时前
每日算法刷题Day84:11.11:leetcode 动态规划9道题,用时2h
算法·leetcode·动态规划
百***416620 小时前
Go-Gin Web 框架完整教程
前端·golang·gin
Kt&Rs21 小时前
11.11 LeetCode 题目汇总与解题思路
算法·leetcode·哈希算法
py有趣21 小时前
LeetCode算法学习之有效的字母异位词
学习·算法·leetcode
猫头虎21 小时前
Rust评测案例:Rust、Java、Python、Go、C++ 实现五大排序算法的执行时间效率比较(基于 OnlineGDB 平台)
java·开发语言·c++·python·golang·rust·排序算法
蒙奇D索大1 天前
【算法】递归算法的深度实践:从布尔运算到二叉树剪枝的DFS之旅
笔记·学习·算法·leetcode·深度优先·剪枝
像风一样自由20201 天前
Go语言入门指南-从零开始的奇妙之旅
开发语言·后端·golang
小白程序员成长日记1 天前
2025.11.10 力扣每日一题
数据结构·算法·leetcode