#OD194. 评论转换输出

评论转换输出

题目解析和算法源码

华为OD机试 - 评论转换输出(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客

题目描述

在一个博客网站上,每篇博客都有评论。

每一条评论都是一个非空英文字母字符串。

评论具有树状结构,除了根评论外,每个评论都有一个父评论。

当评论保存时,使用以下格式:

首先是评论的内容; 然后是回复当前评论的数量。 最后是当前评论的所有了评论。(子评论使用相同的格式嵌套存储) 所有元素之间都用单个逗号分隔。

例如,如果评论如下:

image

第一条评论是"helo,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 行,嵌套级别为的评论按照它们出现的顺序打印,用空格分隔开。

输入描述

一行评论。由英文字母、数字和英文逗号组成。

保证每个评论都是由英文字符组成的非空字符串。

每个评论的数量都是整数 (至少由一个数字组成)。

整个字符串的长度不超过10^6。

给定的评论结构保证是合法的

输出描述

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

用例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" image

用例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

说明

如下图所示 image