นี่เป็นครั้งที่สองในซีรีส์ที่สามคือถนนสองสายที่แยกจากกันในป่าสีเหลือง (ตอนที่ 3)
นี่คือถนนสองสายที่แยกจากกันในป่าสีเหลือง (ตอนที่ 1)ซึ่งเป็นความท้าทายครั้งก่อนของฉัน มันได้รับการตอบรับค่อนข้างดี แต่มันก็ค่อนข้างเล็กน้อย (คำตอบ Java ใน 52 ไบต์!) ดังนั้นฉันจึงทำอะไรที่ซับซ้อนกว่านี้ ...
แรงบันดาลใจ
ความท้าทายนี้ได้รับแรงบันดาลใจจากบทกวีที่มีชื่อเสียงของ Robert Frost "The Road Not Taken":
ถนนสองสายแยกในไม้สีเหลือง
และขอโทษที่ฉันไม่สามารถเดินทางทั้งสอง
และเป็นหนึ่งในผู้เดินทางนานผมยืนอยู่
และมองลงไปหนึ่งเท่าที่ผมจะทำได้
เพื่อที่จะงอในพง;... 2 ย่อหน้าถูกตัด ...
ฉันจะบอกเรื่องนี้ด้วยการถอนหายใจ
ที่ไหนสักแห่งในยุคนี้:
ถนนสองสายแยกจากกันในป่าและฉัน -
ฉันพาคนเดินทางน้อยลง
และนั่นทำให้เกิดความแตกต่าง
สังเกตบรรทัดที่สองถึงบรรทัดสุดท้ายI took the one less traveled by,
. เป้าหมายของคุณคือการหาเส้นทางที่น้อยที่สุดในการป้อนสตริงของคุณ คุณต้องส่งออกหนึ่งใน 2 ค่าที่แตกต่างจากกันซึ่งเป็นสัญญาณว่าคุณควรเลี้ยวไปทางไหนเมื่อเดินทางโดยใช้ถนนน้อยลง เมื่อถนนแยกออก (รอยทางของรูปหกเหลี่ยมเปลี่ยนเป็นตัวเลข) คุณจะอยู่ที่สี่แยก จากนั้นจะมี 2 เส้นทางประกอบด้วยตัวเลข เส้นทางที่มีตัวเลขที่มีผลรวมต่ำสุดจะเป็นถนนที่ไม่ได้ใช้ โปรดทราบว่าถนนที่ไม่ได้ถ่ายอาจมีเส้นทางที่ใหญ่กว่า แต่เป็นเส้นทางรวมที่ต่ำกว่า ต่อไปนี้เป็นตัวอย่าง / กรณีทดสอบจากโปรแกรมที่พิมพ์ "left" หรือ "right" สำหรับเส้นทางที่ไม่ได้รับ:
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)
สิ่งที่ต้องสมมติและจำ
- จะมี 2 เส้นทางเสมอ ไม่มากไม่น้อย.
- คุณสามารถรับอินพุตจาก STDIN ทีละบรรทัดสตริงที่มีอักขระ LF หรือสตริงที่มีแบ็กสแลชตามตัวอักษรและ n หากคุณต้องการข้อมูลในลักษณะอื่นใดให้ขออนุมัติในความคิดเห็น
- คุณไม่ต้องกังวลกับอินพุตหรือเส้นทางที่ไม่ถูกต้อง สิ่งเหล่านั้นจะไม่ถูกป้อนเข้าสู่โปรแกรม / ฟังก์ชั่นของคุณ
- อินพุตอาจมีความกว้างหรือความยาวไม่เกินขีด จำกัด สตริงของภาษาของคุณ
- จะไม่มี
#
และจำนวนในบรรทัดเดียวกัน - ตัวเลขทั้งหมดในเส้นทางเป็นจำนวนเต็มบวก 0 ถึง 9
- อินพุตหรือเอาต์พุตที่มีบรรทัดใหม่ต่อท้ายได้รับอนุญาต
- ดูคำตอบ JS ES6 ของฉันด้านล่างสำหรับตัวอย่าง
- จะต้องมีอย่างน้อย 1 ช่องว่างระหว่าง 2 เส้นทาง
- เส้นทาง 2 เส้นทางจะมีความสูงเท่ากันสำหรับแต่ละแผนที่ แต่อาจแตกต่างกันในแผนที่อื่น ๆ
- หากคุณสับสนเกี่ยวกับกรณีทดสอบที่เฉพาะเจาะจงโปรดบอกฉัน
- 1111 ตีความว่า 1 + 1 + 1 + 1 = 4 ไม่ใช่ 1111 = 1111 แผนที่เป็นชุดของตัวเลขหนึ่งหลักไม่ใช่จำนวนความยาวโดยพลการ
- นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
- ช่องโหว่มาตรฐานต้องห้าม
หากคุณมีคำถามเกี่ยวกับความท้าทายนี้ขอให้ฉันแสดงความคิดเห็นและขอให้โชคดี!
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");
ลงในคอนโซลของคุณ