挑战
创建一个函数,当给定ASCII艺术作品的输入(引导可能最终循环的路径)时,该函数将输出循环的长度(如果存在)和“尾部”的长度,而其中的“尾部”将通过以下方式之一进入循环表格如下。
输入值
您的输入必须传递给函数。下面是一个简单输入的示例。
# --> # --> #
^ |
| |
| v
# <-- #
您可以像这样可视化上面的块
“尾巴”是一个项目,而循环是四个长。
一个更困难的:
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
输出量
您必须通过STDOUT或您的语言最接近的替代品进行输出。
您的两个输出整数应该是尾部的长度和循环的长度。此输出可以采用两种形式。
- 用空格分隔的字符串:
"2 10"
- 整数数组:
[2, 10]
规则
每个块(或
#
)都只有一条单独的路径。每个箭头是两个线段和一个头。
起始块将始终位于最左列。
输入永远不会只是一个循环。
例
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
这条尾巴的长度为2,环圈的长度为6。在下面,尾巴和环圈是分开的。
尾巴
# -->
^
|
|
#
环
# --> # --> #
^ |
| |
| v
# <-- # <-- #
正确的输出是[2, 6]
和"2 6"
。
如果输入仅为尾部,则循环长度为零。
# --> # --> # --> #
|
|
v
<-- # <-- #
上述输入的正确输出是[6, 0]
和"6 0"
@orlp我认为您在混淆输入和输出。
—
Sanchises
输入中是否可以有更多断开的路径?
—
xnor 2015年
我认为简介令人困惑。它使我认为问题将与程序分析有关,而与ASCII艺术中的路径查找有关。
—
xnor
我已经删除了简介。这有点令人困惑/误导。@xnor
—
扎克·盖茨