以任何合理的方便格式(例如4, 0, -1, -6, 2
或)编写一个以非空整数列表形式接受的程序或函数[4 0 -1 -6 2]
。
打印或返回一个将列表描述为ASCII艺术林的字符串,其中每个数字都变成成比例高度的树。每棵树在输出中占据四列文本,如下所示:
一个正整数N成为一棵树,其底为
__|_
,top为^
,/ \
介于两者之间。例如,当N = 1时,树是
^ / \ __|_
当N = 2时,树是
^ / \ / \ __|_
当N = 3时,树是
^ / \ / \ / \ __|_
等等。
负整数N就像相应的正树一样,只不过在分支斜杠之间有一个竖线而不是空格。
例如,当N = -1时,树为
^ /|\ __|_
当N = -2时,树为
^ /|\ /|\ __|_
当N = -3时,树为
^ /|\ /|\ /|\ __|_
等等。
当整数为0时,从技术上讲,没有树,只有四个下划线的空白:
____
每棵树的底部的下划线必须在输出中对齐,即所有树的底部必须在同一水平。此外,单个下划线将添加到最后一棵树之后的下划线行的末尾。这样一来,每棵树的两边都会有一个空的“空气”列。
作为一个示例,输出为4 0 -1 -6 2
将
^
/|\
^ /|\
/ \ /|\
/ \ /|\ ^
/ \ ^ /|\ / \
/ \ /|\ /|\ / \
__|_______|___|___|__
请注意,树形图样始终总是有一个空白列,但必须添加下划线以填充最后一棵树的右侧。
也:
- 任何行上的尾随空格都可以,但是不应有不必要的前导空格。
- 不允许使用前导换行符(最高的树应触摸输出文本网格的顶部),并且最多只允许尾随一个换行符。
- 该列表可以包含-250至250之间的任何整数。不需要处理高大的树木。
以字节为单位的最短代码获胜。
更多例子
3
:
^
/ \
/ \
/ \
__|__
-2
:
^
/|\
/|\
__|__
0
:
_____
0, 0
:
_________
0, 1, 0
:
^
/ \
______|______
0, -1, 2, -3, 4
:
^
^ / \
^ /|\ / \
^ / \ /|\ / \
/|\ / \ /|\ / \
______|___|___|___|__
_
在最后一棵树后添加尾随(下划线)。