您应该编写一个程序或函数来接收字符串作为输入,然后输出或返回(如果输入是ASCII树)。
_
\/ /
\_/
|
|
ASCII树由字符/ \ | _ spaces
和组成newlines
。
非空白字符通过线段连接其单元格的两个边缘点:
/
连接左下角和右上角\
连接右下角和左上角|
连接底边和顶边的中点_
连接左下角和右下角以及底边的中点
(请注意,这意味着|
只能连接|
或_
但不与/
或\
)。
如果遵循以下规则,则ASCII图片称为树:
- 恰好一个字符的一个点(根)碰到最后一行的底部边缘。
您可以通过以下方式到达任何线段的任意点:
- 从根开始
- 仅使用线段
- 永远不要朝下(甚至不向侧面)
输入值
- 一个由字符组成
/ \ | _ space
并且newline
包含至少一个非空白字符的字符串。 您可以选择两种输入格式:
- 树周围没有不必要的空格(如示例所示)。
- 除了行右侧的空格使所有行具有相同的长度外,树周围没有不必要的空格(如示例所示)。
尾随换行符是可选的。
输出量
例子
有效树:
|
_
\/ /
\_/
|
|
/ / \/
\ \____/
\/
/
/
\___/
/ \
\___/
|
|
__/
_/
/
____
\ ___
\ \/
\/\_____/
\/ \/
\__/
|
|
无效的树(带有额外的解释,这些解释不属于输入内容):
\/
\_______/
\__ /
| \_/ <- reachable only on with downward route
|
_ <- multiple roots
\/ <- multiple root characters
/\ <- multiple roots
| <- unreachable part
|
__/
/ <- unreachable parts
|
\____/
| | <- multiple roots
_\__/ <- unreachable parts (_ and \ don't connect to each other)
|
这是代码高尔夫球,因此最短的条目将获胜。