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()
}
相关推荐
rannn_11122 分钟前
【力扣hot100】多维动态规划|62、64、5、1143、72
算法·leetcode·动态规划
计科杨某人1 小时前
简单算法题(基础入门题)
c++·算法·题解·入门·基础算法
find1star10 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
LB211210 小时前
力扣160 21 86
算法·leetcode·职场和发展
王的宝库11 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
花酒锄作田11 小时前
Go - Gin中使用sessions
golang
a1879272183112 小时前
【算法】动态规划第二篇:双序列 DP 三课——继承、计步与断链
算法·leetcode·动态规划·dp·回溯·暴力·算法讲解
不甘先生17 小时前
Go 中 type、方法与指针接收者:从 str_name.Name() 看懂 Go 的类型系统
开发语言·后端·golang
Nil20818 小时前
leetcode 994腐烂的橘子
算法·leetcode·职场和发展
血小板要健康20 小时前
队列 + 宽搜(BFS):二叉树层序遍历 算法总结
java·数据结构·笔记·算法·leetcode·宽度优先