ทุกคนรักรายการซ้อนกัน! อย่างไรก็ตามบางครั้งมันก็ยากที่จะสร้างรายการซ้อนกัน คุณต้องตัดสินใจว่าคุณต้องการทำรังให้ลึกกว่านี้หรือถ้าคุณต้องการทำรังให้ตื้นขึ้น ดังนั้นสำหรับความท้าทายของคุณคุณต้อง "Autonest" รายการ หากต้องการรายการอัตโนมัติให้เปรียบเทียบรายการทุกคู่ในรายการ
หากรายการที่สองมีขนาดเล็กกว่าให้แยกองค์ประกอบทั้งสองโดยแทรกการปิดและเปิดวงเล็บระหว่างพวกเขาเช่นนี้
} { {2 , 1}
ตัวอย่างเช่น
{2, 1}
กลายเป็น{2}, {1}
และ{3, 2, 1}
กลายเป็น{3}, {2}, {1}
หากรายการที่สองเหมือนกันก็ไม่มีอะไรเปลี่ยนแปลง ยกตัวอย่างเช่น
{1, 1, 1}
ยังคงเหมือนเดิมและจะกลายเป็น{2, 1, 1, 1}
{2}, {1, 1, 1}
หากรายการที่สองมีขนาดใหญ่กว่าให้ซ้อนทุกรายการดังต่อไปนี้หนึ่งระดับ ตัวอย่างเช่น
{1, 2}
จะกลายเป็น{1, {2}}
และ{1, 2, 3}
จะกลายเป็น{1, {2, {3}}}
ความท้าทาย
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการตัวเลขและส่งกลับรายการเดียวกันหลังจากที่ถูก autonested ใช้อินพุตนี้ในรูปแบบรายการภาษาดั้งเดิมของคุณ (หรือตัวเลือกที่ใกล้เคียงที่สุด) หรือเป็นสตริง คุณไม่จำเป็นต้องใช้เครื่องมือจัดฟันแบบหยิกอย่างที่เคยทำในตัวอย่าง คุณสามารถใช้วงเล็บประเภทใดก็ได้ที่เป็นธรรมชาติที่สุดในภาษาของคุณตราบใดที่มันสอดคล้องกัน คุณสามารถสรุปได้อย่างปลอดภัยว่ารายการจะมีจำนวนเต็มเท่านั้น คุณสามารถสมมติว่ารายการจะมีตัวเลขอย่างน้อย 2 ตัว นี่คือตัวอย่าง IO:
{1, 3, 2} --> {1, {3}, {2}}
{1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, {5, {6}}}}}}
{6, 5, 4, 3, 2, 1} --> {6}, {5}, {4}, {3}, {2}, {1}
{7, 3, 3, 2, 6, 4} --> {7}, {3, 3}, {2, {6}, {4}}
{7, 3, 1, -8, 4, 8, 2, -9, 2, 8} --> {7}, {3}, {1}, {-8, {4, {8}, {2}, {-9, {2, {8}}}}}
ช่องโหว่มาตรฐานนำไปใช้และคำตอบที่สั้นที่สุดในไบต์ชนะ!
[-100, 100]
แต่ฉันไม่ได้วางแผนที่จะให้อินพุตขนาดใหญ่
{2, 1}
กลายเป็น{2}, {1}
" วิธีที่หนึ่งระดับ ? {2}, 1
หนึ่งในระดับที่สูงขึ้นจะเป็น สิ่งที่คุณมีอยู่ในระดับเดียวกัน