Усі люблять вкладені списки! Однак іноді важко скласти вкладений список. Ви повинні вирішити, чи хочете ви гніздіти його глибше, чи потрібно гніздіти його дрібніше. Тож для вашого виклику ви повинні "Автоматизувати" список. Щоб опублікувати список, порівняйте кожну пару елементів у списку.
Якщо другий елемент менший, відокремте два елементи, вставивши між ними кронштейни, що закриваються та відкриваються так:
} { {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}}}
Змагання
Ви повинні написати програму або функцію, яка містить список номерів, і повертає той самий список після автоматичного додавання. Візьміть це введення у форматі рідного списку мов (або найближчої альтернативи) або як рядок. Не потрібно використовувати фігурні брекети, як я робив у своїх прикладах. Ви можете використовувати той тип дужок, який є найбільш природним у вашій мові, доки це відповідає. Можна сміливо припускати, що список буде містити лише цілі числа. Ви також можете припустити, що у списку буде щонайменше 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
. У вас є той самий рівень.