385_迷你语法分析器
难度:中等
题目
给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。
列表中的每个元素只可能是整数或整数嵌套列表
示例
示例一:
输入:s = “324”,
输出:324
解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 324。
示例二:
输入:s = “[123,[456,[789]]]”,
输出:[123,[456,[789]]]
解释:返回一个 NestedInteger 对象包含一个有两个元素的嵌套列表:
- 一个 integer 包含值 123
- 一个包含两个元素的嵌套列表:
i. 一个 integer 包含值 456
ii. 一个包含一个元素的嵌套列表a. 一个 integer 包含值 789
提示
- $1 <= s.length <= 5 * 10^4$
- s 由数字、方括号 “[]”、负号 ‘-‘ 、逗号 ‘,’组成
- 用例保证 s 是可解析的 NestedInteger
- 输入中的所有值的范围是 $[-10^6, 10^6]$
解题
题目意思是解析字符串,还原成 NestedInteger 对象,NestedInteger 对象可以实例化成两类,要么是空或者数组,要么是数字
使用 start 来标记起始位置,用来截取一个完整的对象字符串,用 count 来标记层数,当 count 等于 0 时,说明当前字符串为数字,当字符大于 0 时,说明当前字符串为数组
1 | |