การป้อนข้อมูล:
เขาวงกตที่มีตัวละคร:
--
(ผนังแนวนอน);|
(ผนังแนวตั้ง);+
(การเชื่อมต่อ);(พื้นที่เดิน);
I
(ทางเข้า);U
(ออก)
เช่นอินพุตอาจมีลักษณะเช่นนี้:
+--+--+--+--+--+--+--+--+--+--+
I | | |
+ +--+--+--+ + + + +--+ +
| | | | | |
+--+--+--+ +--+--+ + + +--+
| | | | |
+ +--+--+ + +--+--+ +--+ +
| | | | | |
+--+ + +--+--+ +--+--+ + +
| | | | | |
+ +--+--+--+ +--+--+ + + +
| | | | | |
+--+ + +--+--+ +--+--+--+--+
| | | | |
+ + +--+--+--+ +--+ + + +
| | | | | | | |
+--+--+ + +--+ + + +--+ +
| | | | | |
+ +--+--+--+ + + + + +--+
| | | | U
+--+--+--+--+--+--+--+--+--+--+
เอาท์พุท:
มีประสิทธิภาพมากที่สุดเส้นทางที่คุณควรจะเดินจะได้รับจากทางเข้าทางออกของเขาวงกต (ผ่านเขาวงกต) แสดงโดยตัวละครที่ระบุซ้าย, ขวา, ขึ้นและลง (เช่น>
; <
; ^
; v
)
กฏท้าทาย:
- คุณสามารถรับอินพุตในรูปแบบที่เหมาะสม String-array, String เดี่ยวที่มีบรรทัดใหม่, char-array 2D และอื่น ๆ ล้วนเป็นรูปแบบอินพุตที่เป็นไปได้ทั้งหมด
- เอาต์พุตสามารถประกอบด้วยอักขระสี่ตัวที่แตกต่างกัน คือ
><^v
;→←↑↓
;⇒⇐⇑⇓
;RLUD
;0123
;ABCD
; ฯลฯ ) - คุณได้รับอนุญาตให้เพิ่มช่องว่างหรือต่อท้ายบรรทัดใหม่ไปยังเอาต์พุตหากต้องการ นี่เป็นทางเลือก
- ขั้นตอนจะถูกนับต่อตาราง (ดูสี่
+
-symbols สำหรับช่องสี่เหลี่ยม) และไม่ใช่สำหรับแต่ละอักขระ - เขาวงกตมีขนาด 5x5 ถึง 15x15 และจะเป็นรูปสี่เหลี่ยมเสมอ (ดังนั้นจะไม่มีกรณีทดสอบใด ๆ สำหรับเขาวงกต 5x10)
- คุณสามารถสันนิษฐานได้ว่าเขาวงกตทุกคนมีเส้นทางที่ถูกต้องตั้งแต่หนึ่งเส้นทางขึ้นไปตั้งแต่ต้นจนจบและคุณจะได้ผลลัพธ์ที่สั้นที่สุดเสมอ (ดูกรณีทดสอบ 4 และ 5)
- หากมีหลายเส้นทางที่มีความยาวเท่ากันคุณสามารถเลือกเส้นทางที่จะส่งออก (ดูกรณีทดสอบ 6)
- คุณไม่สามารถ 'เดิน' นอกขอบเขตของเขาวงกต (ดูกรณีทดสอบ 7 และ 8)
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / เมธอดพร้อมพารามิเตอร์ที่เหมาะสมโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
กรณีทดสอบ:
1. Input:
+--+--+--+--+--+--+--+--+--+--+
I | | |
+ +--+--+--+ + + + +--+ +
| | | | | |
+--+--+--+ +--+--+ + + +--+
| | | | |
+ +--+--+ + +--+--+ +--+ +
| | | | | |
+--+ + +--+--+ +--+--+ + +
| | | | | |
+ +--+--+--+ +--+--+ + + +
| | | | | |
+--+ + +--+--+ +--+--+--+--+
| | | | |
+ + +--+--+--+ +--+ + + +
| | | | | | | |
+--+--+ + +--+ + + +--+ +
| | | | | |
+ +--+--+--+ + + + + +--+
| | | | U
+--+--+--+--+--+--+--+--+--+--+
1. Output:
>v>>>vv<v>>v>v>>vvv>>>
2. Input:
+--+--+--+--+--+
I | | |
+ +--+--+ + +
| | | |
+ +--+ + + +
| | | | |
+ + +--+ + +
| | |
+--+ + +--+--+
| | U
+--+--+--+--+--+
2. Output:
>vvv>>v>>>
3. Input:
+--+--+--+--+--+
U | |
+ + +--+--+ +
| | | |
+--+--+ + +--+
| | |
+ +--+--+--+ +
| | | |
+ + + + +--+
| | I
+--+--+--+--+--+
3. Output:
<<<^<v<^^>>^<^<<
4. Input (test case with two valid paths):
+--+--+--+--+--+
U | |
+ + +--+--+ +
| | |
+--+--+ + +--+
| | |
+ +--+--+--+ +
| | | |
+ + + + +--+
| | I
+--+--+--+--+--+
4. Output:
<<^>^<^<<^<< (<<<^<v<^^>>^<^<< is less efficient, and therefore not a valid output)
5. Input (test case with two valid paths):
I
+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+
| | | | |
+ + + +--+--+--+ + +--+--+ +--+--+ + +
| | | | | | | |
+--+--+--+ +--+ + +--+--+--+--+ +--+--+--+
| | | | | | | | |
+ + + + + +--+ + + + +--+--+ +--+ +
| | | | | | | |
+ +--+--+--+ +--+--+ + +--+ +--+--+ +--+
| | | | | | | | |
+ +--+ + +--+ +--+--+ +--+--+ + +--+ +
| | | | | | |
+ + +--+--+--+--+ + +--+--+--+ +--+ +--+
| | | | | | | |
+--+--+--+ + +--+--+ +--+ + +--+ +--+ +
| | | | | | | |
+ +--+--+--+--+ + + +--+--+--+ + + + +
| | | | | | | | | |
+--+ + + + + + +--+--+ + + +--+ + +
| | | | | | | | | |
+--+ +--+--+ + + + +--+--+--+ + + + +
| | | | | | | | | |
+ +--+ +--+--+ + +--+--+ + +--+ + + +
| | | | | | | | | |
+--+--+--+ + + +--+ + +--+--+ +--+ + +
| | | | | | | |
+ + +--+--+--+--+ +--+--+ +--+--+ +--+ +
| | | | | |
+ + + +--+--+--+--+--+--+--+--+ +--+ +--+
| | | |
+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+
U
5. Output:
v<<<v<vv<<v<v>>^>>^^>vvv>>>v>vv<vv<<v<v<^<^^^^<vvvvv<^<v<<v>v>>>>>>>v (v<<<v<vv<<v<v>>^>>^^>vvv>>>v>vv<vv<<v<v<^<^^^^<vvvvv>v>>>^>>^>^^>vvv<v<v<<v is less efficient, and therefore not a valid output)
6. Input:
+--+--+--+--+--+
I |
+ + + + + +
| |
+ + + + + +
| |
+ + + + + +
| |
+ + + + + +
| U
+--+--+--+--+--+
6. Output:
>>v>v>v>v> or >v>v>v>v>> or >>>>>vvvv> or etc. (all are equally efficient, so all 10-length outputs are valid)
7. Input:
I U
+ + +--+--+--+
| | | |
+ +--+--+ + +
| | | |
+--+ + +--+ +
| | | |
+ +--+ + + +
| | |
+--+ +--+--+ +
| | |
+--+--+--+--+--+
7. Output:
vv>v>^>^<<^
8. Input:
+--+--+--+--+--+
| | |
+ +--+ +--+ +
I | | | |
+ + +--+ + +
U | | | |
+--+--+ + + +
| | | |
+ +--+--+--+ +
|
+--+--+--+--+--+
8. Output:
>v<
เขาสร้างขึ้นโดยใช้เครื่องมือนี้ (และในบางกรณีแก้ไขเล็กน้อย)
>v>>>vv<v>>v>v>>vvv>>>
ผมคิดว่ากรณีการทดสอบครั้งแรกเป็นความผิดที่มันควรจะเป็น
v<<<<<<^^^^^
(คิดนอกกรอบเสมอ)