您可能还记得小时候的这些图画,但现在是时候让计算机绘制它们了(完整的 ascii 辉煌)。玩得开心!
描述:
输入是描述“字段”的多行(以换行符结尾)。该字段中散布着“数字”(由空格分隔)。所有行都可以被认为是相同的长度(您可以将空格填充到末尾)。
- 数字总是从 1 开始
- 它们遵循自然数的顺序:每个“下一个数字”都以 1 递增
- 每个数字都被(至少)左右一个空格包围
任务:
以自然顺序在这些数字之间
画线(1 -> 2 -> 3 -> ...N)
(假设 N <= 99),具有以下特征:
- 用 '
+
' 字符替换数字 - 对于水平线:使用 '
-
' - 对于垂直线:使用'
|
' - 向左和向下或向右和向上:
/
- 向左和向上或向右和向下:
\
重要笔记:
当绘制类型 4 和 5 的线时,您可以假设(给定与坐标 x1、y1 和 x2、y2 连接的点)
distance(x1,x2) == distance(y1,y2)
。或者换句话说(正如用户 jball 评论的那样):“未水平或垂直对齐的连续元素始终与斜线或反斜线的斜率对齐”。遵循点连接的顺序很重要(较新的线条可以剔除较旧的线条)。
-- 样本输入 1 --
8 7 6 10 9 5 3 4 11 12 13 1 2
-- 样本输出 1 --
+ /| / +--+ +--------+ \ / \ / + / | / +--+ + | \ | +------------------------+ +----------------------------+
-- 样本输入 2 --
64 63 62 61 1 65 66 57 58 2 56 59 45 67 55 46 3 44 54 60 47 53 52 49 48 4 51 50 43 5 42 41 6 23 22 25 26 40 20 21 24 34 7 13 12 33 19 27 32 14 35 8 15 16 39 17 18 28 31 36 9 38 10 11 29 30 37
-- 样本输出 2 --(独角兽参考)
+ /+ // // // /+--+ + + \ | + +-\+ + \ + \ + / + + \ +\ + \ \ | + | + + +/ | +---+ +-------+/ + +--+ + / \ + + | + + + / \ +\ +---+ + \ +--+ + \ /+ + +--+ / \ /+| / | |+ + /+ | / + || / // + + + || / // / \ + || / // / \ | || / +/ / \ +---+ + +\ + + | | | +| +--+ +---+ +
优胜者:
最短的解决方案(按代码字符数)。输入可以通过标准输入读取。