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()
}
相关推荐
chengooooooo2 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展
姚先生972 小时前
LeetCode 54. 螺旋矩阵 (C++实现)
c++·leetcode·矩阵
nuyoah♂5 小时前
DAY36|动态规划Part04|LeetCode:1049. 最后一块石头的重量 II、494. 目标和、474.一和零
算法·leetcode·动态规划
pzx_0015 小时前
【LeetCode】LCR 175.计算二叉树的深度
开发语言·c++·算法·leetcode·职场和发展
Aloha_up5 小时前
LeetCode hot100-89
算法·leetcode·职场和发展
南宫生5 小时前
力扣-贪心-1【算法学习day.71】
java·学习·算法·leetcode
axxy20005 小时前
leetcode之hot100---21合并两个有序链表(C++)
c++·leetcode·链表
MClink5 小时前
Go怎么做性能优化工具篇之pprof
开发语言·性能优化·golang
m0_748254668 小时前
go官方日志库带色彩格式化
android·开发语言·golang
程序猿小柒8 小时前
【LeetCode每日一题】LeetCode 345.反转字符串中的元音字母
算法·leetcode