给定高程的矩形矩阵,绘制其轮廓。
任务
如果,则两个元素x
和y
处于同一轮廓线级别floor(x/10) == floor(y/10)
。例如,52
和58
处于相同的轮廓级别,但是58
和64
不在同一轮廓级别。
绘制轮廓的行为定义如下:对于每个元素e
,将其替换为如下选择的两个字符的字符串:
- 第一个字符是
" "
下面的元素是否与下面的元素处于e
相同的轮廓线级别,e
或者下面没有任何元素e
,"_"
否则 - 第二个字符是,
" "
如果右边的元素与该元素e
处于相同的轮廓线级别,e
或者右边没有元素e
,"|"
否则
将行中的元素连接在一起,然后用换行符将这些行连接在一起。
例
假设输入为[[5,20],[3,6]]
,可视为
5 20
3 6
我们先来看一下5
。由于3
处于与相同的轮廓水平5
,因此第一个字符为" "
。由于20
与的轮廓级别不同5
,因此第二个字符是"|"
。
现在我们来看20
。由于6
轮廓线级别与相同20
,因此第一个字符为"_"
。由于的右边没有元素20
,因此第二个字符是" "
。
现在我们来看3
。由于下面没有元素3
,因此第一个字符为" "
。由于6
与处于相同的轮廓水平3
,第二个字符是" "
。
现在我们来看6
。由于下面没有元素6
,因此第一个字符为" "
。由于的右边没有元素6
,因此第二个字符是" "
。
基于这些两个字符的字符串,我们进行替换以获得[[" |","_ "],[" "," "]]
。将这些结合在一起,我们得到的输出
|_
规则
- 输入矩阵将始终为矩形,并由正整数组成。
- 尾随空格或换行符可以为任意数量(包括0),并且不必以任何方式保持一致。
- 只要产生相同的结果,就不必遵循相同的算法。
- 您的程序或函数可能会输出以换行符分隔的字符串,字符串列表或等效字符串。
- 这是代码高尔夫球,因此以字节为单位的最短代码获胜。
测试用例
input
output
[[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]]
_ _
| |
|_ _|
[[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]]
|_|_|_|_|_|_|_|_|_
|_ |_ _|_ _|_ _
|_ |_ _ |_
|_ |_ _
|_
|_
|_
|_
|_
[[5,5,5,5,5,5,5,5,5,5,5],[5,10,10,10,10,10,10,10,10,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,25,30,25,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,10,10,10,10,10,10,10,10,5],[5,5,5,5,5,5,5,5,5,5,5]]
_ _ _ _ _ _ _ _ _
| |
| _ _ _ _ _ |
| | | |
| | _ | |
| | |_| | |
| | | |
| |_ _ _ _ _| |
| |
|_ _ _ _ _ _ _ _ _|
[[35,32,29,26,25,25,25,26,29,32,35],[32,28,25,22,20,20,20,22,25,28,32],[29,25,21,18,15,15,15,18,21,25,29],[26,22,18,14,11,10,11,14,18,22,26],[25,20,15,11,7,5,7,11,15,20,25],[25,20,15,10,5,0,5,10,15,20,25],[25,20,15,11,7,5,7,11,15,20,25],[26,22,18,14,11,10,11,14,18,22,26],[29,25,21,18,15,15,15,18,21,25,29],[32,28,25,22,20,20,20,22,25,28,32],[35,32,29,26,25,25,25,26,29,32,35]]
_| |_
_| _ _ _ _ _ |_
_| |_
| _ _ _ |
| | | |
| | | |
| |_ _ _| |
|_ _|
_ |_ _ _ _ _| _
|_ _|
| |