ความท้าทาย
สร้างฟังก์ชั่นที่เมื่อป้อนอินพุตของ ASCII art (นำทางเส้นทางที่อาจวนลูปในที่สุด) เอาต์พุตของความยาวของลูป (ถ้ามี) และความยาวของ "หาง" ที่นำไปสู่ลูปในหนึ่งใน แบบฟอร์มด้านล่าง
อินพุต
ข้อมูลของคุณจะต้องถูกส่งผ่านไปยังฟังก์ชั่น ด้านล่างเป็นตัวอย่างของการป้อนข้อมูลแบบง่าย
# --> # --> #
^ |
| |
| v
# <-- #
คุณสามารถเห็นภาพบล็อกด้านบนเช่นนี้
"หาง" เป็นหนึ่งรายการในขณะที่ห่วงยาวสี่
สิ่งที่ยากกว่านี้:
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
เอาท์พุต
คุณต้องแสดงผลผ่าน STDOUT หรือภาษาอื่นที่ใกล้เคียงที่สุด
จำนวนเต็มสองเอาต์พุตของคุณควรเป็นความยาวของหางและความยาวของลูป เอาต์พุตนี้สามารถอยู่ในสองรูปแบบ
- สตริงที่คั่นด้วยช่องว่าง:
"2 10"
- อาร์เรย์ของจำนวนเต็ม:
[2, 10]
กฎระเบียบ
ทุกบล็อกหรือ
#
จะมีเส้นทางเดียวห่างจากตัวเองลูกศรทุกอันมีสองส่วนของเส้นตรงและหนึ่งหัว
บล็อกเริ่มต้นจะอยู่ในคอลัมน์ซ้ายสุดเสมอ
อินพุตจะไม่วนซ้ำ
ตัวอย่าง
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
อันนี้มีความยาวหาง 2 และความยาววน 6 ด้านล่างหางและวนถูกแยกออก
หาง
# -->
^
|
|
#
ห่วง
# --> # --> #
^ |
| |
| v
# <-- # <-- #
ผลที่ถูกต้องและ[2, 6]
"2 6"
หากอินพุตเป็นหางเท่านั้นความยาวลูปจะเป็นศูนย์
# --> # --> # --> #
|
|
v
<-- # <-- #
เอาต์พุตที่ถูกต้องสำหรับอินพุตด้านบนคือ[6, 0]
และ"6 0"