Parfois, j'ai des listes de matrices constantes dans mon code:
[ [[1, 0],
[0, 1]],
[[1, 0],
[0,-1]],
[[0, 1],
[1, 0]],
[[0,-1],
[1, 0]] ]
C'est une terrible utilisation de l'écran immobilier. Je préfère de loin les écrire côte à côte:
[ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Vous constaterez qu'il s'agit toujours d'une liste imbriquée syntaxiquement valide, qu'elle n'est tout simplement plus rectangulaire et qu'elle a une structure très différente (en particulier, elle s'approfondit à chaque fois que j'ajoute une matrice plus grande que 1x1). Cependant, il est toujours possible de reconstruire la liste initiale des matrices à partir de cette nouvelle liste.
Pour pouvoir utiliser cette syntaxe à l'avenir, j'ai besoin que vous écriviez du code qui convertit les tableaux qui ont été écrits dans un arrangement horizontal en liste de matrices qu'ils représentent.
Pour vous assurer que les réponses n'effectuent pas de correspondance de motifs 2D sur la mise en page dans le code source, l'entrée sera donnée soit uniquement comme l'objet tableau, soit si vous prenez une représentation sous forme de chaîne, elle ne contiendra aucun espace indiquant comment littéral a été écrit dans le code. Vous obtiendrez donc une entrée comme celle-ci:
[[[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, 0]]]
Et la sortie doit être le tableau suivant ou sa représentation sous forme de chaîne (encore une fois, aucune autre disposition n'est nécessaire):
[[[1, 0], [0, 1]], [[1, 0], [0,-1]], [[0, 1], [1, 0]], [[0,-1], [1, 0]]]
Il s'agit de la première et plus facile partie d'un défi en deux parties. Dans celui-ci, vous pouvez supposer que toutes les matrices sont carrées et ont les mêmes dimensions et qu'elles sont correctement alignées les unes à côté des autres. Dans la deuxième partie, nous assouplirons ces hypothèses.
Règles
L'entrée sera une liste imbriquée ou sa représentation sous forme de chaîne canonique (dans la langue de votre choix), et vous devez sortir le résultat dans le même format. Le résultat contiendra toujours au moins une matrice, et les matrices peuvent être aussi petites que 1x1. Les matrices ne contiendront que des entiers (signés) avec une valeur absolue inférieure à 128.
Vous pouvez écrire un programme ou une fonction et utiliser l'une des méthodes standard de réception d'entrée et de sortie.
Vous pouvez utiliser n'importe quel langage de programmation , mais notez que ces failles sont interdites par défaut.
Il s'agit de code-golf , donc la réponse valide la plus courte - mesurée en octets - l'emporte.
Cas de test
Chaque cas de test a) les matrices de liste disposées bien à côté de l'autre comme ils le seraient dans le code (ce qui est pas votre entrée), b) la liste non formatée sans les espaces blancs étrangers ( c'est votre entrée), c) production attendue.
Pretty: [ [[0]] ]
Input: [[[0]]]
Output: [[[0]]]
Pretty: [ [[-1]], [[0]], [[1]] ]
Input: [[[-1]],[[0]],[[1]]]
Output: [[[-1]],[[0]],[[1]]]
Pretty: [ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Input: [[[1,0],[[1,0],[[0,1],[[0,-1],[0,1]],[0,-1]],[1,0]],[1,0]]]
Output: [[[1,0],[0,1]],[[1,0],[0,-1]],[[0,1],[1,0]],[[0,-1],[1,0]]]
Pretty: [ [[1, 0, 0], [[ 127, 63, 31], [[1, 0, 0], [[0, 0, 0],
[0, 1, 0], [ 15, 0, -15], [0, 0, 1], [0, 0, 0],
[0, 0, 1]], [ -31, -63, -127]], [0, 1, 0]], [0, 0, 0]] ]
Input: [[[1,0,0],[[127,63,31],[[1,0,0],[[0,0,0],[0,1,0],[15,0,-15],[0,0,1],[0,0,0],[0,0,1]],[-31,-63,-127]],[0,1,0]],[0,0,0]]]
Output: [[[1,0,0],[0,1,0],[0,0,1]],[[127,63,31],[15,0,-15],[-31,-63,-127]],[[1,0,0],[0,0,1],[0,1,0]],[[0,0,0],[0,0,0],[0,0,0]]]
[([1, 0], [0, 1]), ([1, 0], [0, -1]), ([0, 1], [1, 0]), ([0, -1], [1, 0])]
sortie est-elle valide pour le troisième testcase? C'est une liste mixte et un tuple.
[([1,0], ([1, 0}, ...
et cela vous donnerait des informations supplémentaires.