도전
ASCII 아트의 입력이 주어지면 (최종 루프 될 수있는 경로를 지시 할 때) 루프 길이 (있는 경우)와 루프 중 하나에 루프로 이어지는 "꼬리"의 길이를 출력하는 함수를 작성하십시오. 아래 양식.
입력
입력은 함수로 전달되어야합니다. 아래는 간단한 입력의 예입니다.
# --> # --> #
^ |
| |
| v
# <-- #
위의 블록을 다음과 같이 시각화 할 수 있습니다
"꼬리"는 하나의 항목이며 루프는 4 개입니다.
더 어려운 것 :
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
산출
STDOUT 또는 언어의 가장 가까운 대안을 통해 출력해야합니다.
두 개의 출력 정수는 꼬리의 길이와 루프의 길이 여야합니다. 이 출력은 두 가지 형태가 될 수 있습니다.
- 공백으로 구분 된 문자열 :
"2 10"
- 정수 배열 :
[2, 10]
규칙
모든 블록, 또는
#
만 것입니다 멀리 단일 경로를 자체에서.모든 화살표는 두 개의 선분과 하나의 머리입니다.
시작 블록은 항상 가장 왼쪽 열에 있습니다.
입력은 결코 루프가되지 않습니다.
예
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
이것은 꼬리 길이가 2이고 루프 길이가 6입니다. 아래에서 꼬리와 루프가 분리됩니다.
꼬리
# -->
^
|
|
#
고리
# --> # --> #
^ |
| |
| v
# <-- # <-- #
올바른 출력은 [2, 6]
및 "2 6"
입니다.
입력 값이 tail 이면 루프 길이는 0입니다.
# --> # --> # --> #
|
|
v
<-- # <-- #
상기 입력에 대한 올바른 출력은 [6, 0]
및"6 0"