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()
}
相关推荐
叶小鸡5 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
菜菜的顾清寒6 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
OxyTheCrack7 小时前
【Golang】简述make与new内置函数以及两者的区别
开发语言·golang
菜菜的顾清寒9 小时前
HOT力扣100(43)二叉树-翻转二叉树
数据结构·算法·leetcode
朔北之忘 Clancy9 小时前
2026 年 3 月青少年软编等考 C/C++ 一级真题解析
c语言·开发语言·c++·青少年编程·题解·考级
会编程的土豆10 小时前
Go 方法接收者超清晰笔记(类型名 vs 变量名)
开发语言·笔记·golang
csdn_aspnet10 小时前
javascript 算法 LeetCode 编号 70 - 爬楼梯
开发语言·javascript·算法·leetcode·ecmascript
Navigator_Z11 小时前
LeetCode //C - 1073. Adding Two Negabinary Numbers
c语言·算法·leetcode
csdn_aspnet11 小时前
PHP 算法 LeetCode 编号 70 - 爬楼梯
算法·leetcode·php
x_xbx11 小时前
LeetCode:5. 最长回文子串
算法·leetcode·职场和发展