Trong thử thách này, bạn sẽ tính được vùng đất của bạn tuyệt vời như thế nào.
Viết chương trình hoặc chức năng tính toán kích thước đất của bạn, dựa vào bức tường bạn đã xây. Bạn được cung cấp một chuỗi đầu vào không trống chứa một bộ gồm 4 ký tự riêng biệt mà bạn chọn đại diện cho bốn hướng "lên", "xuống", "trái" và "phải" (tôi sẽ sử dụng ^ v < >
trong thử thách này). Không thể quay 180 độ ( <>
hoặc ^v
), nhưng bạn có thể vượt qua tường của mình.
Cách bạn "chiếm giữ" đất bằng cách bao quanh nó với bức tường của bạn. Bức tường cũng được coi là một phần đất của bạn. Một vài ví dụ sẽ làm cho nó rõ ràng hơn. Tôi sẽ sử dụng o
cho đất đã được bao quanh bởi bức tường, x
cho chính bức tường và S
cho điểm bắt đầu của bức tường, chỉ để minh họa cách bức tường được xây dựng. Kết quả sẽ là tổng diện tích đất của mình (số lượng o
, x
và S
trong các trường hợp thử nghiệm dưới đây).
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"
Làm rõ:
- Bạn không cần vẽ tường, đầu ra chỉ nên là một số nguyên
- Các định dạng đầu vào là tùy chọn. Bạn có thể lấy một chuỗi với
<>^v
, một danh sách các chữ số(1, -1, i, -i)
, một danh sách các ký tự,ABCD
v.v.
Đây là môn đánh gôn, vì vậy mã ngắn nhất trong mỗi ngôn ngữ sẽ thắng. Hãy nhớ rằng, giải thích rất quan trọng, ngay cả trong các ngôn ngữ "thông thường"!