เป้าหมายของความท้าทายนี้คือการรวบรวมรายการที่เลือกในรายการและย้ายไปยังตำแหน่งที่แน่นอนในรายการ
เป็นตัวอย่างที่มองเห็นได้นำค่าอินพุต (แสดงโดยจำนวนเต็มกล่องดำ) และรายการที่สอดคล้องกันของค่าความจริงที่จริงหมายถึงรายการที่เลือก (แสดงโดยกล่องสีฟ้าที่T
เป็นความจริงและF
เป็นเท็จ):
ขั้นตอนตรรกะแรกคือการแยกรายการที่ทำเครื่องหมายความจริงและไม่จริงในรายการที่สอดคล้องกัน โปรดทราบว่าลำดับที่สัมพันธ์กันในแต่ละรายการจะต้องได้รับการปรับปรุง (เช่นลำดับของรายการที่เลือกจะต้องเป็น1,4,5
และลำดับของรายการที่ไม่ได้เลือกจะต้องเป็น2,3,6,7
)!
ขั้นตอนตรรกะที่สองจะได้รับดัชนีในรายการที่เหลือของรายการที่ไม่ได้เลือกแทรกรายการที่เลือกทั้งหมดก่อนรายการที่ดัชนีที่กำหนด สมมติว่าการจัดทำดัชนีเริ่มต้นที่ 0 สมมติว่าคุณต้องการที่จะแทรกตัวเลือกที่ดัชนี 3. สอดคล้องกับจุดก่อนนี้กล่องเพื่อให้รายการที่เลือกควรแทรกก่อน7
7
2,3,6,1,4,5,7
วิธีการแก้ปัญหาสุดท้ายคือแล้ว
โปรดสังเกตว่าไดอะแกรมเชิงตรรกะนี้แสดงวิธีหนึ่งที่สามารถทำได้ โปรแกรมของคุณไม่จำเป็นต้องใช้ขั้นตอนแบบลอจิคัลเดียวกันตราบใดที่เอาต์พุตสร้างผลลัพธ์ที่สังเกตได้เหมือนกันเสมอ
อินพุต
โปรแกรมของคุณมี 3 อินพุต:
- รายการจำนวนเต็มแทนรายการ นี่อาจเป็นรายการที่ว่างเปล่า รายการนี้จะประกอบด้วยจำนวนเต็มบวกเฉพาะเสมอไม่จำเป็นต้องเรียงตามลำดับ (เช่น 5 จะไม่อยู่ในรายการสองครั้ง)
- รายการค่าความจริง / เท็จที่มีความยาวเท่ากันกับรายการที่มีค่าความจริงแสดงว่ารายการที่ดัชนีเดียวกันได้ถูกเลือก
- จำนวนเต็มที่แทนตำแหน่งที่จะแทรกการเลือก คุณสามารถเลือกสิ่งที่ดัชนีของรายการแรกของรายการนั้นตราบใดที่ค่าคงที่ในการรันโปรแกรมของคุณทุกครั้ง (เช่นรายการแรกอาจเป็นดัชนี 0 หรือดัชนี 1) โปรดระบุระเบียบปฏิบัติที่โปรแกรมของคุณปฏิบัติตาม ดัชนีนี้ควรอยู่ในช่วง
[starting_idx, ending_idx+1]
กล่าวคือมันจะเป็นดัชนีที่ถูกต้องเสมอ สำหรับดัชนีกรณีคือending_idx+1
การเลือกควรแทรกที่ส่วนท้ายของรายการ คุณอาจคิดว่าจำนวนเต็มนี้จะพอดีกับประเภทจำนวนเต็มของภาษาของคุณ
อินพุตอาจมาจากแหล่งใดก็ได้ที่ต้องการ (stdio, function function, ฯลฯ )
เอาท์พุต
ผลลัพธ์คือรายการที่แสดงถึงลำดับสุดท้ายของรายการ สามารถใช้กับแหล่งใดก็ได้ที่ต้องการ (stdio, ค่าส่งคืน, พารามิเตอร์เอาต์พุตของฟังก์ชัน ฯลฯ ) คุณได้รับอนุญาตให้แก้ไขอินพุตใด ๆ ในสถานที่ (ตัวอย่างเช่นกำหนดรายการที่สามารถแก้ไขได้เป็นพารามิเตอร์ฟังก์ชันและให้ฟังก์ชันของคุณทำงานในตำแหน่งนั้นในรายการนั้น)
กรณีทดสอบ
กรณีทดสอบต่อไปนี้ทั้งหมดใช้การทำดัชนีแบบอิง 0 ฉันใช้ 0 และ 1 เพื่อระบุค่าเท็จ / จริงตามลำดับสำหรับมาสก์ที่เลือก
กรณีทดสอบเกิดขึ้นที่มีรายการที่จัดรูปแบบเป็น[a,b,c]
แต่ตราบใดที่รายการอินพุตของคุณแสดงถึงลำดับที่มีการเรียงลำดับที่แน่นอน
การป้อนข้อมูล:
[]
[]
0
เอาท์พุท:
[]
การป้อนข้อมูล:
[1,2,3,4,5,6,7]
[1,0,0,1,1,0,0]
3
เอาท์พุท:
[2,3,6,1,4,5,7]
การป้อนข้อมูล:
[1,2,3,4,5,6,7]
[1,0,0,1,1,0,0]
0
เอาท์พุท:
[1,4,5,2,3,6,7]
การป้อนข้อมูล:
[1,2,3,4,5,6,7]
[1,0,0,1,1,0,0]
4
เอาท์พุท:
[2,3,6,7,1,4,5]
การป้อนข้อมูล:
[1,2,3,4,5,6,7]
[1,1,1,1,1,1,1]
0
เอาท์พุท:
[1,2,3,4,5,6,7]
การป้อนข้อมูล:
[1,2,3,4,5,6,7]
[0,0,0,0,0,0,0]
5
เอาท์พุท:
[1,2,3,4,5,6,7]
การป้อนข้อมูล:
[1,3,2,5,4,6]
[1,0,0,1,1,0]
3
เอาท์พุท:
[3,2,6,1,5,4]
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม คุณได้รับอนุญาตให้ใช้บิวด์อินที่ต้องการ