AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3601. 评论转换输出

中等通过率 74% · 提交 147 · 通过 109
DFS字符串模拟

小慕正在开发一个博客平台,每篇博客都带有评论功能。 每条评论都是一个非空的英文字母字符串。 评论之间具有,除了根评论外,每条评论都有一个父评论。 当小慕保存评论时,使用以下格式: - 首先是评论的内容; - 然后是回复当前评论的数量; - 最后是当前评论的所有(子评论使用相同的格式嵌套存储)。 所有元素之间都用单个逗号分隔。 例如,如果评论如下: ![image.png](/api/public/img/ec2a4d7a3a59496fabafc3275f10a678.png) 第一条评论是"hello,2,ok,0,bye,0",第二条评论是"test,0",第三条评论是"one,1,two,1,a,0"。 所有评论被保存成"hello,2,ok,0,bye,0,test,0,one,1,two,1,a,0"。 对于上述格式的评论,小慕需要以另外一种格式打印: - 首先打印评论嵌套的最大深度。 - 然后打印n行,第i (1 ≤ i ≤ n) 行对应于为i的评论(根评论的嵌套级别为1)。 - 对于第i行,嵌套级别为i的评论按照它们出现的顺序打印,用空格分隔开。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 一行评论。由英文字母、数字和英文逗号组成。 </p> <p> 保证每个评论都是由英文字符组成的非空字符串。 </p> <p> 每个评论的数量都是整数(至少由一个数字组成)整个字符串的长度不超过10^6 </p> <p> 给定的评论结构保证是合法的. </p>

输出描述

按照给定的格式打印评论。对于每一级嵌套,评论应该按照输入中的顺序打印。

示例

示例 1

输入

hello,2,ok,0,bye,0,test,0,one,1,two,1,a,0

输出

3
hello test one
ok bye two
a

说明:如题目描述中图所示,最大嵌套级别为3,嵌套级别为1的评论是"hello test one",嵌套级别为2的评论是"ok bye two",嵌套级别为3的评论为"a"

示例 2

输入

A,5,A,0,a,0,A,0,a,0,A,0

输出

2
A
A a A a A

说明:最大嵌套级别为2,嵌套级别为1的评论是"A",嵌套级别为2的评论是"A a A a A"

示例 3

输入

A,3,B,2,C,0,D,1,E,0,F,1,G,0,H,1,I,1,J,0,K,1,L,0,M,2,N,0,O,1,P,0

输出

4
A K M 
B F H L N O
C D G I P
E J

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
评论树状结构示例 hello (深度1) ok (深度2) bye (深度2) a (深度3) 深度1 深度2 深度3 输入: hello,2,ok,0,bye,0,test,0,one,1,two,1,a,0 输出: 深度3, 第1行: hello test one, 第2行: ok bye two, 第3行: a
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「评论转换输出」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。