|
先看下原数据:
D/ff/00
D/ff/00/aa
D/ff/00/aa/bb
D/ff/00/aa/bb/01
D/ff/00/aa/bb/02
D/ff/00/bb
D/ff/00/bb/bb
D/ff/00/bb/bb/03
D/ff/00/bb/bb/04
D/ff/00/c
问题描述:
1、 行可有很多行。
2、以“/”作为分割层级,层级数可能很多,不确定。
3、如从左边开始,向右层级推进,若位置相同,但内容不同的,需要在同位置首行做标注。
如:
1)从第1行开始,D/ff/00下面都相同,但从其后面就开始不同。 第1行的后面为空,第2~5行为aa, 6~9为bb,10为c。 我们需要将其不同其他行的标注出来,就是1,5,9,(注意不标注10)在同位置的首行标注出来,就是第一行 D/ff/00,"1*5*9"
2)然后继续向左退,以2~5行为列,2~5行 D/ff/00/aa/bb前面相同,但是从D/ff/00/aa/bb向后,就不同了,第3行后为空,第4行为01,第5行为02,所以标注就是3,4, (注意 不标注5),在同位置的首行,就是第三行标注:D/ff/00/aa/bb,"3*4"
3)其他层级 类似,如D/ff/00/bb/bb,"7*8"]),当然往右可能有更多的层级
4、标注说明:
未涉及的行,标注自己所在的行号,如第6行。D/ff/00/bb,"6"。
被标注的行,不再标注行号。如第4行:D/ff/00/aa/bb/01,""
最后一行,不需标准,如第10行,D/ff/00/c,""
最终结果如下:
结果数据:
D/ff/00,"1*5*9"
D/ff/00/aa,"2"
D/ff/00/aa/bb,"3*4"
D/ff/00/aa/bb/01,""
D/ff/00/aa/bb/02,""
D/ff/00/bb,"6"
D/ff/00/bb/bb,"7*8"
D/ff/00/bb/bb/03,""
D/ff/00/bb/bb/04""
D/ff/00/c,""
献上所有家当,请大神指点!给出算法!
|
|