Inspiré de ce post StackOverflow.
introduction
Le travail de Bob consiste à créer des feuilles de calcul et à les organiser. La façon dont il les organise est connue de très peu, à l'exception de Bob, mais il crée une liste de chacune des feuilles de calcul qui appartiennent au même groupe. Il y a un tas de données dans la feuille de calcul qu'il crée, mais il n'y a qu'une seule donnée que nous examinons en ce moment: le nombre de jours entre le jour où il a commencé ce travail et le jour où il a créé la feuille de calcul. Le premier jour, il a créé deux feuilles de calcul, les a notées 0
et triées à leur emplacement approprié.
Maintenant, son patron demande un examen des types de feuilles de calcul qui se sont produits chaque jour, et c'est votre travail d'écrire du code qui va comprendre cela pour Bob; il a beaucoup trop de feuilles de calcul pour le faire à la main.
Contribution
Les informations de Bob qu'il vous donne se présentent sous la forme d'un tableau dentelé (indexé 0 ou 1) où chaque donnée est de la forme x = a[i][j]
. a
est ce que j'appelle le tableau dentelé lui-même, i
le type de feuille de calcul et x
la date de création du tableau. j
est sans importance.
La tâche
Étant donné un tableau dentelé de jours de création de feuille de calcul organisés par leur type, renvoyez un tableau dentelé de types de feuille de calcul organisés par jour de création de feuille de calcul.
Exemples
Bob ne va pas simplement vous laisser avec ces données abstraites. Il m'a donné un sous-ensemble de certaines de ses feuilles de calcul pour vous aider à comprendre ce que tout est censé être.
Exemple d'entrée (indexé 0):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
Exemple de sortie (avec commentaire, ce qui bien sûr n'est pas nécessaire):
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
]
Notez que Bob ne fait pas toujours deux feuilles de calcul tous les jours, et donc la sortie peut également être irrégulière. Mais il crée toujours au moins une feuille de calcul chaque jour, donc la sortie n'aura jamais besoin de contenir des tableaux vides - bien que si votre sortie a des tableaux vides à la fin, vous n'avez pas besoin de les supprimer.
Plus de cas de test:
[[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]]
Les listes internes de la sortie n'ont pas besoin d'être triées.
Comme toujours, aucune faille standard, et bien sûr le code le plus court gagne.
(Comme c'est ma première question, faites-moi savoir tout ce que je peux faire pour l'améliorer.)
[[0 0]]
donner une sortie [[0 0] []]
?