Các thách thức
Tạo một hàm, khi được cung cấp đầu vào của nghệ thuật ASCII (chỉ đạo một đường dẫn cuối cùng có thể lặp lại), xuất ra độ dài của vòng lặp (nếu có) và độ dài của "đuôi" dẫn vào vòng lặp trong một trong các các hình thức dưới đây.
Đầu vào
Đầu vào của bạn phải được chuyển đến một chức năng. Dưới đây là một ví dụ về một đầu vào đơn giản.
# --> # --> #
^ |
| |
| v
# <-- #
Bạn có thể hình dung các khối trên như thế này
"Đuôi" là một mục, trong khi vòng lặp dài bốn.
Một khó khăn hơn:
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
Đầu ra
Bạn phải xuất thông qua STDOUT hoặc ngôn ngữ thay thế gần nhất của bạn.
Hai số nguyên đầu ra của bạn phải là chiều dài của đuôi và chiều dài của vòng lặp. Đầu ra này có thể ở hai dạng.
- một chuỗi giới hạn không gian:
"2 10"
- một mảng các số nguyên:
[2, 10]
Quy tắc
Mỗi khối, hoặc
#
, sẽ chỉ có một con đường duy nhất cách xa nó.Mỗi mũi tên là hai đoạn đường và một đầu.
Khối bắt đầu sẽ luôn ở cột ngoài cùng bên trái.
Đầu vào sẽ không bao giờ chỉ là một vòng lặp.
Thí dụ
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
Cái này có chiều dài đuôi là 2 và chiều dài vòng là 6. Dưới đây, đuôi và vòng được tách ra.
Đuôi
# -->
^
|
|
#
Vòng
# --> # --> #
^ |
| |
| v
# <-- # <-- #
Các đầu ra chính xác là [2, 6]
và "2 6"
.
Nếu đầu vào chỉ là một cái đuôi , thì độ dài vòng lặp bằng không.
# --> # --> # --> #
|
|
v
<-- # <-- #
Các đầu ra chính xác cho đầu vào trên là [6, 0]
và"6 0"