Натхненний цим публікацією 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] []]?