Соревнование
Создайте функцию, которая при получении входных данных искусства ASCII (направляя путь, который может в конечном итоге зацикливаться), выводит длину цикла (если он есть) и длину «хвоста», ведущего в цикл в одном из формы ниже.
вход
Ваш вклад должен быть передан в функцию. Ниже приведен пример простого ввода.
# --> # --> #
^ |
| |
| v
# <-- #
Вы можете визуализировать вышеуказанные блоки, как это
«Хвост» - это один элемент, а цикл - четыре.
Более сложный:
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
Выход
Вы должны выводить через STDOUT или ближайшую альтернативу вашего языка.
Ваши два выходных целых числа должны быть длиной хвоста и длиной цикла. Этот вывод может быть в двух формах.
- строка, разделенная пробелом:
"2 10"
- массив целых чисел:
[2, 10]
правила
Каждый блок, или
#
, будет иметь только один путь от себя.Каждая стрелка - это два отрезка и одна голова.
Начальный блок всегда будет в крайнем левом столбце.
Вход никогда не будет просто петлей.
пример
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
Этот имеет длину хвоста 2 и длину петли 6. Ниже хвост и петля разделены.
Хвост
# -->
^
|
|
#
петля
# --> # --> #
^ |
| |
| v
# <-- # <-- #
Правильные выводы есть [2, 6]
и "2 6"
.
Если вход является только хвостом , длина цикла равна нулю.
# --> # --> # --> #
|
|
v
<-- # <-- #
Правильные выходы для вышеуказанного ввода [6, 0]
и"6 0"