introduction
Les tableaux peuvent également être considérés comme un champ pour une balle rebondissante. Bien sûr, cela semble très vague, voici donc un exemple d'entrée:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Le défi est de sortir les tableaux rebondis . Ceux-ci sont fabriqués à partir de motifs diagonaux qui rebondissent sur les bords du champ. Ce chemin est pointé vers le haut . Le chemin du premier tableau rebondi (dans lequel le chemin est directement rebondi sur l'egde) est:
[1, -, -, -, 5, -, -, -, 9]
[-, 8, -, 6, -, 4, -, 2, -]
[-, -, 3, -, -, -, 7, -, -]
De gauche à droite, cela se traduirait par [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Ceci est notre premier tableau rebondi. Le chemin pour le deuxième tableau rebondi:
[-, 2, -, -, -, 6, -, -, -]
[9, -, 7, -, 5, -, 3, -, 1]
[-, -, -, 4, -, -, -, 8, -]
Cela se traduit par [9, 2, 7, 4, 5, 6, 3, 8, 1]
. Le chemin pour le troisième tableau rebondi est:
[-, -, 3, -, -, -, 7, -, -]
[-, 8, -, 6, -, 4, -, 2, -]
[1, -, -, -, 5, -, -, -, 9]
Cela se traduit par [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Les trois tableaux rebondis sont donc:
[1, 8, 3, 6, 5, 4, 7, 2, 9]
[9, 2, 7, 4, 5, 6, 3, 8, 1]
[1, 8, 3, 6, 5, 4, 7, 2, 9]
Tâche
Étant donné au moins 1 tableau contenant uniquement des entiers non négatifs, tous les tableaux ayant la même longueur, sortez tous les tableaux rebondis.
Cas de test
Cas de test 1:
Input: Output:
[1, 2, 3, 4, 5] [1, 7, 3, 9, 5]
[6, 7, 8, 9, 0] [6, 2, 8, 4, 0]
Input: Output:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
Input: Output:
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
[9, 9, 9, 9, 9, 9, 9, 100] [9, 0, 9, 0, 9, 0, 9, 0]
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
Input: Output:
[0, 1, 2, 3, 4, 5] [0, 7, 14, 9, 4, 11]
[6, 7, 8, 9, 10, 11] [6, 1, 8, 15, 10, 5]
[12, 13, 14, 15, 16, 17] [12, 7, 2, 9, 16, 11]
Input: Output:
[0, 0, 0, 0, 0, 0] [0, 2, 2, 6, 2, 6]
[1, 2, 3, 4, 5, 6] [1, 0, 3, 2, 5, 2]
[2, 2, 2, 2, 2, 2] [2, 2, 0, 4, 2, 4]
[9, 8, 7, 6, 5, 4] [9, 2, 3, 0, 5, 2]
C'est du code-golf , donc la soumission avec le moins d'octets gagne!
Réponses:
Pyth, 17 octets
Explication:
Essayez-le ici .
la source
JavaScript (ES6), 70
TESTER
la source
CJam,
3130 octetsEntrée et sortie sous forme de liste de tableaux de style CJam.
Testez-le ici.
Très certainement golfable ...
la source
Gelée,
292524 octetsMerci pour @ Sp3000 de m'avoir aidé à jouer au golf sur 5 octets!
Essayez-le en ligne!
la source
Ruby (2.2.2p95), 124 octets
Cela pourrait probablement être beaucoup mieux. Je vais comprendre comment plus tard!
la source
Japt,
55494139 octetsWow, c'était à la fois très délicat et incroyablement amusant.
Testez-le en ligne!
Sorties dans l'ordre inverse des exemples. Cela cassera légèrement sur les entrées de plus de 100 tableaux; j'espère que cela ne fait pas trop de différence.
Version non concurrente, 36 octets
J'avais implémenté ces deux fonctions numériques avant le défi:
ò
- identique ào
, mais retourne[X..Y]
au lieu de[X..Y)
ó
- identique ào
, mais retourne[X..X+Y)
au lieu de[X..Y)
Mais en raison d'un mauvais emplacement
0
, ils étaient buggés et retournaient toujours des tableaux vides. Cela a maintenant été corrigé.Testez-le en ligne!
la source
Python 2,
107106108105104 octets(Suppression de quelques parens supplémentaires) (Emplacement de départ incorrect (ب_ب)) (avait déjà une liste de cette longueur)
Il est légal d'avoir l'entrée comme argument d'une fonction, non? C'est la première fois que je soumets ma réponse de code de golf.
la source
APL, 33 caractères
Supposons que ⎕IO ← 0. L'idée est que le mouvement de rebond peut être obtenu par simple déplacement vers le haut d'une matrice, si la matrice d'origine est augmentée le long de la première dimension avec la matrice inversée avec sa première et sa dernière rangée rasées. Graphiquement:
de
Dans APL
reverse
etupward rotate
sont le même symbole:⊖
.la source
⊃
au lieu de0⌷
.Clojure, 125 octets
Wow, cela a accumulé des personnages assez rapidement.
J'essaie simplement de sauvegarder des octets en
let
définissant les valeurs fréquemment utilisées.la source
Gelée *, 15 octets
Essayez-le en ligne!
* Version plus récente
la source