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