Все любят вложенные списки! Однако иногда сложно составить вложенный список. Вы должны решить, хотите ли вы вложить его глубже или вам нужно вложить его глубже. Таким образом, для вашей задачи, вы должны "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}}}
Соревнование
Вы должны написать программу или функцию, которая принимает список чисел и возвращает тот же список после автоматической установки. Примите этот ввод в формате списка родных языков (или ближайшего варианта) или в виде строки. Вам не нужно использовать фигурные скобки, как я делал в своих примерах. Вы можете использовать любой тип скобок, которые наиболее естественны для вашего языка, если это не противоречит. Вы можете смело предполагать, что список будет содержать только целые числа. Вы также можете предположить, что в списке будет как минимум 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
. То, что у вас есть, того же уровня.