Inspirowany tym postem StackOverflow.
Wprowadzenie
Zadaniem Boba jest tworzenie arkuszy kalkulacyjnych i ich organizowanie. Sposób, w jaki je organizuje, jest znany nielicznym, z wyjątkiem Boba, ale tworzy listę każdego z arkuszy kalkulacyjnych należących do tej samej grupy. W utworzonym przez siebie arkuszu kalkulacyjnym jest mnóstwo danych, ale w tej chwili analizujemy tylko jeden fragment: liczba dni między dniem, w którym zaczął to zadanie, a dniem, w którym utworzył ten arkusz. Pierwszego dnia stworzył dwa arkusze kalkulacyjne, zanotował je 0i posortował w odpowiednich miejscach.
Teraz jego szef prosi o sprawdzenie, jakie rodzaje arkuszy kalkulacyjnych zdarzały się każdego dnia, a Twoim zadaniem jest napisanie kodu, który to rozwiąże dla Boba; ma o wiele za dużo arkuszy kalkulacyjnych, aby zrobić to ręcznie.
Wejście
Informacje Boba, które ci podaje, mają postać postrzępionej tablicy (indeksowanej 0 lub 1), w której każdy układ odniesienia ma postać x = a[i][j]. ato, co nazywam samą postrzępioną tablicą, ito rodzaj arkusza kalkulacyjnego i xdata utworzenia tablicy. jjest nieważne.
Zadanie
Biorąc pod uwagę postrzępioną tablicę dni tworzenia arkuszy kalkulacyjnych uporządkowanych według ich typu, zwróć postrzępioną tablicę typów arkuszy kalkulacyjnych uporządkowanych według dnia utworzenia arkusza kalkulacyjnego.
Przykłady
Bob nie zamierza zostawić cię z tymi abstrakcyjnymi danymi. Dał mi podzbiór niektórych swoich arkuszy kalkulacyjnych, aby pomóc ci dowiedzieć się, co powinno być.
Przykładowe dane wejściowe (indeksowane 0):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
Przykładowe dane wyjściowe (z komentarzem, który oczywiście nie jest wymagany):
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
]
Pamiętaj, że Bob nie zawsze tworzy dwa arkusze kalkulacyjne każdego dnia, więc wyniki mogą być również postrzępione. Ale zawsze tworzy co najmniej jeden arkusz kalkulacyjny każdego dnia, więc dane wyjściowe nigdy nie będą musiały zawierać pustych tablic - chociaż jeśli dane wyjściowe mają puste tablice na końcu, nie trzeba ich usuwać.
Więcej przypadków testowych:
[[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]]
Wewnętrzne listy danych wyjściowych nie muszą być sortowane.
Jak zawsze nie wygrywa żadna standardowa luka i oczywiście najkrótszy kod.
(Ponieważ jest to moje pierwsze pytanie, daj mi znać, co mogę zrobić, aby to poprawić).
[[0 0]]dać wynik [[0 0] []]?