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()
}
相关推荐
银河技术9 小时前
从脚本到 Operator:用 Go 构建可靠的微服务自动扩缩容控制器
开发语言·微服务·golang
Nil20819 小时前
leetcode 5最长回文子串
算法·leetcode·职场和发展
m0_6745719720 小时前
力扣 hot 100 python
python·算法·leetcode
圣保罗的大教堂21 小时前
leetcode 3727. 最大交替平方和 中等
leetcode
Xin77021 小时前
LeetCode 200. 岛屿数量(DFS 深度优先遍历法)
leetcode
alphaTao1 天前
LeetCode 每日一题 2026/10/12-2026/10/18
算法·leetcode
Cccp.1231 天前
【leetcode】(十三)大数据处理
数据结构·算法·leetcode
Pniubi1 天前
力扣70爬楼梯
数据结构·算法·leetcode
云和数据.ChenGuang1 天前
Golang AI 工程师路线图:从入门到实战
开发语言·人工智能·后端·golang
报错小能手1 天前
内存管理 垃圾回收面试题
golang