Вдохновлен этим постом StackOverflow.
Вступление
Работа Боба заключается в создании электронных таблиц и их организации. То, как он их организует, известно очень немногим, кроме Боба, но он создает список каждой из электронных таблиц, входящих в одну группу. В электронной таблице, которую он создает, есть куча данных, но есть только одна часть данных, на которую мы сейчас обращаем внимание: количество дней между днем, когда он начал эту работу, и днем, когда он создал электронную таблицу. В первый день он создал две электронные таблицы, отметил их обе 0и отсортировал их по месту.
Теперь его начальник просит рассмотреть, какие электронные таблицы происходят каждый день, и ваша задача - написать код, который выяснит это для Боба; у него слишком много таблиц, чтобы сделать это вручную.
вход
Информация Боба, которую он дает вам, представлена в виде зубчатого массива (с индексами 0 или 1), где каждый элемент имеет форму x = a[i][j]. aэто то, что я называю самим зубчатым массивом, iэто тип электронной таблицы и xдата создания массива. jневажно.
Задание
При наличии неровного массива дней создания электронных таблиц, организованного по их типу, верните неровный массив типов электронных таблиц, упорядоченных по дню создания электронных таблиц.
Примеры
Боб не собирается просто оставлять вас с этими абстрактными данными. Он дал мне подмножество некоторых своих электронных таблиц, чтобы помочь вам выяснить, что все должно быть.
Пример ввода (с 0 индексами):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
Пример вывода (с комментарием, который, конечно, не требуется):
output = [
[0,2] # On day 0, Bob made one type 0 and one type 2 spreadsheet
[1,2] # On day 1, Bob made one type 1 and one type 2 spreadsheet
[0,2] # On day 2, Bob made one type 0 and one type 2 spreadsheet
[0,1,3] # On day 3, Bob made one type 0, one type 1, and one type 3 spreadsheet
[2,3] # On day 4, Bob made one type 2 and one type 3 spreadsheet
[0,3] # On day 5, Bob made one type 0 and one type 3 spreadsheet
[4,4] # On day 6, Bob made two type 4 spreadsheets
]
Обратите внимание, что Боб не всегда делает две таблицы каждый день, и поэтому выходные данные могут быть неровными. Но он всегда создает по крайней мере одну электронную таблицу каждый день, поэтому в выходных данных никогда не будет необходимости содержать пустые массивы - хотя, если в конце выходных данных есть пустые массивы, их не нужно удалять.
Больше тестовых случаев:
[[3,5,6,2],[0,0,0],[1,0,3,4]] -> [[1,1,1,2],[2],[0],[0,2],[2],[0],[0]]
[[-1]] -> Undefined behavior, as all input numbers will be non-negative integers.
[[0],[0],[],[0]] -> [[0,1,3]]
Внутренние списки вывода не нужно сортировать.
Как всегда, нет стандартных лазеек и, конечно же, выигрывает самый короткий код.
(Поскольку это мой первый вопрос, пожалуйста, дайте мне знать, что я могу сделать, чтобы улучшить его.)
[[0 0]]дать вывод [[0 0] []]?