介绍
x轴上的苹果树干位于-2到2之间,一些苹果掉落在它周围:
| |
| |
<-------|---|------->
-2 2
每天,有n个苹果掉下来。每个苹果都保持其x坐标,直落在地。
但是,如果它落在另一个苹果的顶部,它将按照以下规则滚动,直到到达地面或苹果的支撑层:
- 如果当前高度的x + 1处的空间为空,则当前的苹果会去那里。
- 否则,如果x-1处的空间为空,则当前的苹果进入该位置。
- 否则,当前苹果将停留在该其他苹果之上。
挑战
输入将按顺序是每个苹果的n个起始位置。您可以将其视为数组或分隔数字,也可以采用其他任何有效方式,只需确保在答案中对其进行了解释即可。
输出应该是树干和周围苹果的ASCII绘图。您不需要在最左边的苹果的左侧和最右边的苹果的右侧绘制x轴,但是您确实需要在某些苹果下方的任何位置绘制x轴。您还可以将树扩展到最高苹果上方。
您可以假设所有x坐标都在-100和100之间,但不在-2和2之间。
这是代码高尔夫球 ..以字节为单位的最短答案胜出!
例子
输入: [-3, 5, 5, -4, -4, 5, -3]
输出:
a| |
aaa| | aaa
---|---|----
输入: [3, 3, 3, 3, 8, 9]
输出:
| |a
| |aaa aa
|---|-------
输入: [-5, -5, -5, -5, -5, -5, -5, -5, -5]
输出:
a | |
aaa | |
aaaaa| |
-----|---|
美好的回忆。:)
—
Martin Ender
您的示例暗示应显示x方向上的最小可能范围(树木和苹果的左侧和右侧没有空的地面)。这是一个要求吗?另外,是否允许我们打印尾随空格,至少将输出填充为矩形?
—
Martin Ender
另外,由于规范实际上不允许以任何不同的输出格式开头,因此您当前无法获得任何奖金。
—
Martin Ender
对于Marbelous中的第一个答案,我将给予100 rep赏金。用掉下的弹珠算出的掉落的苹果……太合适了。
—
quintopia '16