ในการท้าทายนี้คุณจะคำนวณว่าที่ดินของคุณดีแค่ไหน
เขียนโปรแกรมหรือฟังก์ชั่นที่คำนวณขนาดที่ดินของคุณจากกำแพงที่คุณสร้างขึ้น คุณได้รับสตริงป้อนข้อมูลที่ไม่ว่างประกอบด้วยชุดอักขระ 4 ตัวที่คุณเลือกซึ่งเป็นตัวแทนของทั้งสี่ทิศทาง "ขึ้น", "ลง", "ซ้าย" และ "ขวา" (ฉันจะใช้^ v < >
ในการท้าทายนี้) ไม่สามารถเลี้ยวได้ 180 องศา ( <>
หรือ^v
) แต่คุณสามารถข้ามกำแพงได้
วิธีที่คุณ "จับ" ที่ดินคือล้อมรอบด้วยกำแพงของคุณ กำแพงเองก็ถือว่าเป็นส่วนหนึ่งของที่ดินของคุณด้วย ตัวอย่างบางส่วนจะทำให้ชัดเจนยิ่งขึ้น ฉันจะใช้o
สำหรับที่ดินที่ล้อมรอบด้วยกำแพงx
เพื่อกำแพงและS
สำหรับจุดเริ่มต้นของกำแพงเพียงเพื่อแสดงให้เห็นว่าผนังถูกสร้างขึ้นอย่างไร การส่งออกควรจะมีขนาดรวมของที่ดินของคุณ (จำนวนo
, x
และS
ในกรณีทดสอบด้านล่าง)
Input: >>>>
Land: Sxxxx
Output: 5
Input: <<<^^^>>>vv
Land:
xxxx
xoox
xoox
xxxS
Output: 16
Input: <<<^^^>>>v
Land:
xxxx
x x
x
xxxS
Output: 11
Input: <
Land: xS
Output: 2
Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<<
Land:
Sxxxxxx
x
x
x
x
xxxxxxxxx
xxxx xoooox x
xoox xoooox x
xoox xoooox x
xoox xxxxxx x
xoox x
xoox x
xxxxxx x
x x
x x
xxxxxxxxxxxxxxxx
Output: 101
Input: >>vvvv>>^^<<<<^
Land:
Sxx
xox
xxxxx
xox
xxx
Output: 17
Input: <<^^^>>>vv
Land:
xxxx
x x
x x
xxS
Output: 11 <- Note, diagonal edges do not close the "loop"
ชี้แจง:
- คุณไม่จำเป็นต้องวาดกำแพงผลลัพธ์ควรเป็นจำนวนเต็มเท่านั้น
- รูปแบบอินพุตเป็นทางเลือก คุณอาจใช้สตริงกับ
<>^v
รายการของตัวเลข(1, -1, i, -i)
รายการของตัวละครABCD
ฯลฯ
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาชนะ โปรดจำไว้ว่าคำอธิบายมีความสำคัญแม้ในภาษา "ปกติ"!