Đây là lần thứ hai trong một loạt, thứ ba là Hai con đường được phân chia trong một gỗ màu vàng (phần 3)
Điều này dựa trên Hai con đường được chuyển hướng trong một khúc gỗ màu vàng (phần 1) , một thử thách trước đây của tôi. Nó đã được đón nhận khá tốt, nhưng nó cũng khá tầm thường (một câu trả lời Java bằng 52 byte!) 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 đó tuổi và tuổi vì thế:
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,
. Mục tiêu của bạn là tìm đường đi ít nhất trong đầu vào chuỗi của bạn. Bạn phải xuất một trong 2 giá trị khác biệt với nhau để báo hiệu bạn nên rẽ theo con đường nào để đi ít hơn. Khi đường nhánh (đường của hình lục giác thay đổi thành số), bạn đang ở giao lộ. Từ đó, sẽ có 2 đường dẫn được tạo thành từ các chữ số. Đường có chữ số có tổng thấp nhất sẽ là đường không được lấy. Lưu ý rằng đường không được chọn có thể có đường dẫn lớn hơn nhưng tổng đường dẫn thấp hơn. Dưới đây là một số ví dụ / trường hợp thử nghiệm từ một chương trình in "trái" hoặc "phải" cho đường dẫn không được thực hiện:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
Những điều cần giả định và ghi nhớ
- Sẽ luôn có 2 con đường. Không nhiều không ít.
- Bạn có thể lấy đầu vào từ STDIN một dòng tại một thời điểm, một chuỗi chứa các ký tự LF hoặc một chuỗi chứa dấu gạch chéo ngược bằng chữ và n. Nếu bạn cần đầu vào theo bất kỳ cách nào khác, yêu cầu phê duyệt trong các ý kiến.
- Bạn không phải lo lắng về đầu vào không hợp lệ hoặc đường dẫn bị ràng buộc. Những người sẽ không bao giờ được nhập vào chương trình / chức năng của bạn.
- Đầ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ẽ không bao giờ có một
#
và một số trong cùng một dòng. - Tất cả các chữ số trong đường dẫn là số nguyên dương 0 đến 9.
- Đầu vào hoặc đầu ra với một dòng mới được cho phép.
- Xem câu trả lời JS ES6 của tôi dưới đây để biết ví dụ.
- Sẽ luôn có ít nhất 1 khoảng trắng giữa 2 đường dẫn.
- Hai đường dẫn sẽ luôn có cùng chiều cao cho mỗi bản đồ, nhưng có thể khác nhau trên các bản đồ khác.
- Nếu bạn bối rối về một trường hợp thử nghiệm cụ thể, xin vui lòng cho tôi biết.
- 1111 được hiểu là 1 + 1 + 1 + 1 = 4, không phải 1111 = 1111. Bản đồ là một chuỗi các số có một chữ số, không phải số có độ dài tùy ý.
- Đâ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
Nếu bạn có bất kỳ câu hỏi nào về thử thách này, hãy hỏi tôi trong phần bình luận, và chúc may mắn!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
vào bảng điều khiển của bạn!