Lưu ý: Điều này dựa trên Hai con đường được chuyển hướng trong gỗ màu vàng (phần 2) , một thử thách trước đây của tôi. Vì sự phổ biến của câu hỏi đó và Hai con đường rẽ vào một khúc gỗ màu vàng (phần 1) , tôi muốn làm một phần ba. Nhưng 2 cái đầu tiên quá dễ dàng ( câu trả lời 2 byte cho lần đầu tiên, câu trả lời 15 byte cho lần thứ hai.) Vì vậy, tôi đã làm một cái gì đó phức tạp hơn ...
Nguồn cảm hứng
Thử thách này được lấy cảm hứng từ bài thơ nổi tiếng của Robert Frost, Con đường chưa đi :
Hai con đường rẽ vào một khúc gỗ màu vàng,
Và xin lỗi tôi không thể đi cả hai
Và là một du khách, tôi đứng đó
và nhìn xuống một cách xa nhất có thể
đến nơi mà nó bị bẻ cong;... 2 đoạn được cắt tỉa ...
Tôi sẽ nói điều này với một tiếng thở dài Ở
đâu đó và mọi lứa tuổi: Do đó,
hai con đường rẽ vào một khúc gỗ, và tôi -
tôi đã đi một con đường ít đi qua,
và điều đó đã tạo nên sự khác biệt.
Lưu ý dòng thứ hai đến dòng cuối cùng , I took the one less traveled by,
.
Câu chuyện hậu trường
Bạn được giao nhiệm vụ giúp đỡ một nhà thám hiểm mù đang đi trên đường và được truyền cảm hứng từ The Road Not Taken . Nhà thám hiểm đang tiếp cận một ngã ba trên đường và muốn đi theo con đường ít người đi qua. Bạn phải tìm nơi thám hiểm thực sự và nói với nhà thám hiểm nơi để rẽ.
Các thách thức
Mục tiêu của bạn là tìm ra con đường ít người đi nhất trên bản đồ của bạn, nơi con đường rẽ nhánh. Bản đồ của bạn là một chuỗi chứa các dòng mới (hoặc \n
, nếu bạn thích) và có chiều rộng và chiều cao không xác định. Trong bản đồ, đường được tạo thành từ các chữ số 0 đến 9 , giao lộ được tạo thành #
s. Bạn phải tìm con đường bạn đang đi và ra khỏi những con đường khác mà con đường đi qua nhiều nhất và con đường ít người đi qua cho nhà thám hiểm mù của bạn. Bản đồ trong rừng được thể hiện bằng một khoảng trống. Đây là một bản đồ đơn giản:
2 2
1 0
#
2
2
Bản đồ này rộng 5 và cao 5. Chú ý đường rẽ nhánh theo hình chữ Y. Chữ Y có thể được định hướng theo bất kỳ cách nào, vì vậy bạn phải có khả năng hiểu bản đồ "xoay".
Có #
nghĩa là gì
Trường hợp bản đồ sẽ có a #
. Điều này không ảnh hưởng đến điểm số của bất kỳ con đường.
Những con số thực sự có nghĩa là gì
Mỗi đường dẫn (một dòng số, có thể có một khúc cua trong đó) có một điểm. Điểm của một đường dẫn được xác định bằng cách thêm các chữ số của nó, vì vậy, trong ví dụ đầu tiên, đường dẫn đầu tiên (từ phía trên bên trái, theo chiều kim đồng hồ) có điểm 2 + 1 = 3, lần thứ hai có 2 + 0 = 2 và lần thứ ba có 2 + 2 = 4. Đường có thể chứa các số được kết nối theo đường chéo.
Tìm bạn đang ở đâu
Bạn đang trên con đường có số điểm cao nhất. Hai con đường khác là con đường đi qua nhiều hơn và con đường ít đi qua. Bạn cần tìm con đường có số điểm thấp nhất .
Nói cho khách du lịch của bạn đi đâu
Bạn phải nói với khách du lịch của bạn đi "trái" hoặc "phải". Hãy nhớ rằng chỉ đường là từ quan điểm của khách du lịch của bạn (anh ấy đang đối mặt với ngã ba.)
Bản đồ ví dụ
14
9#
04
Đầu ra: "đúng" (khách du lịch đang ở 9
đường, 0 + 4 <1 + 4
9
9
9
9
9
#
8 8
8 8
88 88
8 7
Đầu ra: "trái" (khách du lịch đang ở trên 99999
đường, 8 + 8 + 8 + 8 + 8> 8 + 8 + 8 + 8 + 7
02468
#98765
13579
Đầu ra: "đúng" (khách du lịch đang ở 98765
đường, 0 + 2 + 4 + 6 + 8 <1 + 3 + 5 + 7 + 9)
4 2
4 2
#
4
4
2
2
Đầu ra: "đúng" (khách du lịch đang ở 4422
đường, 4 + 4> 2 + 2)
9
9
9
#
8 7
8 7
8 7
Đầu ra "trái" (khách du lịch đang ở trên 999
đường, 8 + 8 + 8> 7 + 7 + 7
Những điều cần biết:
- Bản đồ sẽ được đệm bằng các khoảng trắng để làm cho mỗi dòng có cùng độ dài.
- Bạn phải xuất ra STDOUT / console / file chuỗi
left
hoặcright
, tùy ý theo sau là một dòng mới. - Bạn phải lấy đầu vào là một chuỗi chứa dòng mới,
\n
s hoặc một mảng / danh sách các dòng (mỗi dòng là một chuỗi). Trong đó đầu vào được đặt phải là một hàm, đối số dòng lệnh, tệp hoặc STDIN một dòng tại một thời điểm hoặc tương tự. Một biến không phải là một thiết bị đầu vào có thể chấp nhận (trừ khi nó là một tham số hàm.) Tương tự, các biểu thức hàm trong JS và các ngôn ngữ khác phải được gán cho một biến. - Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!
- Sơ hở tiêu chuẩn bị cấm
Những điều bạn có thể giả định
- Đầu vào của bạn sẽ hợp lệ. Không có gì như thế này sẽ được kiểm tra:
0 0 0 0 0 # 0 0
- Điểm số của Paths sẽ không bao giờ bị ràng buộc.
- Đầu vào có thể có chiều dài hoặc chiều cao bất kỳ, nhỏ hơn giới hạn chuỗi của ngôn ngữ của bạn.
- Sẽ luôn có ít nhất 1 khoảng trắng giữa 2 đường dẫn.
- Đường dẫn có thể có khúc cua, khúc cua, v.v ... Đây là những con đường, không phải đường cao tốc.
#
luôn luôn ở trung tâm theo chiều ngang?