Đây là nghệ thuật ASCII của giao lộ 4 chiều:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(Lưu ý cách đường ngang cao 3 hàng, trong khi đường dọc rộng 5 cột. Đây là lý do thẩm mỹ, vì phông chữ nhật.)
Thách thức của bạn là sản xuất nghệ thuật ASCII này. Tuy nhiên, như tôi chắc chắn tất cả các bạn đều biết, không phải mọi ngã tư đều có một con đường đi theo mọi hướng. Giao lộ cụ thể này đi NESW
, nhưng một số giao lộ có thể đi, ví dụ NW
:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
Hoặc nó có thể đi SWE
:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
Hoặc thậm chí có thể đi E
, chỉ là một hướng duy nhất (mặc dù bạn khó có thể gọi đây là giao lộ , nhưng cố gắng tránh bị quá phạm vi):
+-----+-----
| |
| |- - -
| |
+-----+-----
Bạn cần viết một chương trình hoặc chức năng có thể dễ dàng tạo ra bất kỳ kết hợp nào trong số này. Cụ thể hơn, thách thức của bạn là viết một chương trình hoặc chức năng lấy một chuỗi các hướng, bao gồm NESW
, làm đầu vào và đầu ra hoặc trả về nghệ thuật ASCII này của giao lộ với các đường chỉ theo các hướng đó. Những hướng dẫn này có thể xuất hiện ở bất kỳ trật tự, nhưng đầu vào sẽ không chứa bất kỳ ký tự trừ N
, E
, S
, hoặc W
. Nếu bạn thích, bạn có thể yêu cầu đầu vào là chữ thường, nhưng bạn phải chỉ định điều này trong câu trả lời của bạn. Bạn cũng có thể cho rằng tất cả các đầu vào sẽ chứa ít nhất một hướng.
Ví dụ cuối cùng có không gian hàng đầu trên mỗi dòng, bởi vì không có con đường nào đi về phía tây. Nếu bạn không có đường đi về phía tây, những không gian hàng đầu này là tùy chọn. Điều này:
+-----+-----
| |
| |- - -
| |
+-----+-----
Cũng sẽ là một đầu ra chấp nhận được. Tương tự, nếu N
hoặc S
không còn, các dòng trống ở đó là tùy chọn. Một newline trailing được cho phép, và dấu không gian được phép miễn là đầu ra là trực quan giống nhau.
Bạn có thể lấy đầu vào và đầu ra ở bất kỳ định dạng hợp lý nào, chẳng hạn như STDIN / STDOUT, đối số dòng lệnh, tệp, đối số hàm / giá trị trả về, v.v.
Như thường lệ, đây là môn đánh gôn , vì vậy hãy cố gắng có được câu trả lời ngắn nhất có thể bằng bất kỳ ngôn ngữ nào bạn sử dụng!
Mẫu IO:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |
E
ví dụ nếu không có )? Các dòng trống hàng đầu và dấu có được phép nếu không cóN
hoặcS
không?