ท้าทาย:
ได้รับรายชื่อของรายการว่างของจำนวนเต็มกลับรายการ tuples ของรูปแบบต่อไปนี้: ครั้งแรก tuples รายการเริ่มต้นด้วยองค์ประกอบของรายการแรกตามด้วยองค์ประกอบแรกของทุกรายการที่ตามมาแต่ละครั้งดังนั้น tuple ith [ith element of first list, first element of second list, ... , first element of last list]
ที่ควรจะเป็น ตัวอย่างเช่น:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [[1, 4, 7], [2, 4, 7], [3, 4, 7], ...
จากนั้นทำ tuples ของแบบฟอร์ม[last element of first list, ith element of second list, first element of third list, ..., first element of last list]
ดังนั้นในตัวอย่างของเรานี้จะเป็น:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 4, 7], [3, 5, 7], [3, 6, 7], ...
ดำเนินการต่อในรายการที่เหลือแต่ละรายการจนกว่าคุณจะไปที่[last element of first list, ..., last element of second to last list, ith element of last list]
:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 6, 7], [3, 6, 8], [3, 6, 9]]
ผลลัพธ์แบบเต็มมีดังนี้:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] =>
[[1, 4, 7], [2, 4, 7], [3, 4, 7], [3, 5, 7], [3, 6, 7], [3, 6, 8], [3, 6, 9]]
บางสำเร็จรูปสำหรับวัดที่ดี:
- ถ้าคุณต้องการให้อินพุตเป็นรายการของสตริงหรือรายการของจำนวนเต็มบวกก็ไม่เป็นไร คำถามเกี่ยวกับการจัดการรายการไม่ใช่เกี่ยวกับสิ่งที่อยู่ในรายการ
- input และ output สามารถอยู่ในรูปแบบที่ยอมรับใด ๆ
- อนุญาตให้ใช้โปรแกรมหรือฟังก์ชั่นเต็มรูปแบบได้
- ช่องโหว่มาตรฐานจะไม่ได้รับอนุญาตตามค่าเริ่มต้น
- คำถามนี้คือการเขียนโค๊ตดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ
ตัวอย่าง:
[] => [[]] (or an error, thanks to ngn for correcting the output in this case)
[[1]] => [[1]]
[[1, 2], [3, 4], [5]] => [[1, 3, 5], [2, 3, 5], [2, 4, 5]]
[[1], [2], [5, 6], [3], [4]] => [[1, 2, 5, 3, 4], [1, 2, 6, 3, 4]]
[[1, 2, 3], [4, 5]] => [[1, 4], [2, 4], [3, 4], [3, 5]]
[[1, 2, 3], []] => unspecified behavior (can be an error)
[[3, 13, 6], [9, 2, 4], [5, 10, 8], [12, 1, 11], [7, 14]] =>
[[3, 9, 5, 12, 7], [13, 9, 5, 12, 7], [6, 9, 5, 12, 7], [6, 2, 5, 12, 7],
[6, 4, 5, 12, 7], [6, 4, 10, 12, 7], [6, 4, 8, 12, 7], [6, 4, 8, 1, 7],
[6, 4, 8, 11, 7], [6, 4, 8, 11, 14]]
[[16, 8, 4, 14, 6, 7, 10, 15], [11, 1, 12, 2, 19, 18, 9, 3], [13, 5, 17]] =>
[[16, 11, 13], [8, 11, 13], [4, 11, 13], [14, 11, 13], [6, 11, 13],
[7, 11, 13], [10, 11, 13], [15, 11, 13], [15, 1, 13], [15, 12, 13], [15, 2, 13],
[15, 19, 13], [15, 18, 13], [15, 9, 13], [15, 3, 13], [15, 3, 5], [15, 3, 17]]
หากใครมีชื่อที่ดีกว่าให้ฉันรู้
[[]]
เพราะมีสิ่งอันดับเดียวที่มีหนึ่งรายการจากแต่ละรายการย่อย (ศูนย์) อาจเป็นเรื่องที่น่ารำคาญเกินกว่าที่จะกำหนดให้โปรแกรมส่งออกอย่างถูกต้องดังนั้นฉันจะบอกว่าไม่จำเป็น
[]
คือพูดอย่างเคร่งครัดรายการว่างเปล่าของรายการที่ไม่ว่างเปล่า แต่ผลลัพธ์ไม่ชัดเจนระหว่าง[]
และ[[]]
ถ้าเป็นอินพุตที่อนุญาต ("สิ่งอันดับแรกอันดับที่เริ่มต้นด้วยแต่ละองค์ประกอบของรายการแรก ... " - ไม่มีรายการแรกดังนั้นเราจึงเสร็จแล้ว -> []
)
[]
[[]]
ยกตัวอย่างเช่นจำนวน tuples ออกเป็นsum(inner list lengths) - length of outer list + 1
ซึ่งในกรณีที่ว่างเปล่าให้1
ซึ่งเป็นความยาวของแต่ไม่ได้ความยาวของ[[]]
[]
นี่เป็นปัญหาเล็กน้อยที่เกิดขึ้นจริง ๆ ...
[] => []
ควรจะเป็น[] => [[]]
แต่ไม่สามารถหาคำเพื่ออธิบายว่าทำไม