หมายเหตุ: นี่คือ # 2 ในชุดของความท้าทายการจัดการอาร์เรย์ สำหรับความท้าทายก่อนหน้านี้คลิกที่นี่
แยกรายการซ้อนกัน
หากต้องการแยกค่าในรายการที่ซ้อนให้ทำให้แบนแล้วห่อแต่ละค่าเพื่อให้อยู่ในระดับความลึกที่ซ้อนกันเหมือนเดิม
กล่าวคือรายการนี้:
[1, [2, 3], [4, 4, [5, 2], 1]]
จะกลายเป็น:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
ความท้าทาย
งานของคุณคือการเขียนโปรแกรมที่รับรายการจำนวนเต็มบวก (ภายในขีด จำกัด ของภาษาของคุณ) และดำเนินการแยกนี้
คุณสามารถส่งฟังก์ชั่นที่รับรายการเป็นอาร์กิวเมนต์หรือโปรแกรมเต็มรูปแบบที่ดำเนินการ I / O
เนื่องจากนี่คือโค้ดกอล์ฟการส่งสั้นที่สุด (เป็นไบต์) ชนะ! *
* ช่องโหว่มาตรฐานการเล่นกอล์ฟถูกแบน คุณรู้จักสว่าน
กรณีทดสอบ
รายการอินพุตจะมีจำนวนเต็มตามขนาดจำนวนเต็มมาตรฐานของภาษาของคุณเท่านั้น เพื่อหลีกเลี่ยงข้อ จำกัด ของภาษาที่ขัดขวางไม่ให้แข่งขันค่าจะไม่ซ้อนกันที่ระดับความลึกมากกว่า 10
คุณอาจคิดว่าการป้อนข้อมูลจะไม่มีรายการย่อยว่างเปล่าตัวอย่างเช่น - [[5, []]]
จะไม่ได้รับ อย่างไรก็ตามรายการหลักอาจว่างเปล่า
[] -> []
[[1, 2]] -> [[1], [2]]
[3, [4, 5]] -> [3, [4], [5]]
[3, [3, [3]]] -> [3, [3], [[3]]]
[[6, [[7]]]] -> [[6], [[[7]]]]
[[5, 10], 11] -> [[5], [10], 11]
อย่าลังเลที่จะแสดงความคิดเห็นหากฉันพลาดกรณีมุม
ตัวอย่าง
ฉันได้รวมตัวอย่าง Python 3 อย่างรวดเร็ว (ungolfed) ไว้ด้วยกัน - คุณสามารถทดสอบบน repl.itได้