Défi:
Étant donné une entrée matricielle, déterminez la quantité de diagonales et d'anti-diagonales avec des nombres en double.
Donc, si nous avons une matrice comme celle-ci:
[[aa,ab,ac,ad,ae,af],
[ba,bb,bc,bd,be,bf],
[ca,cb,cc,cd,ce,cf],
[da,db,dc,dd,de,df]]
Toutes les diagonales et anti-diagonales seraient:
[[aa],[ab,ba],[ac,bb,ca],[ad,bc,cb,da],[ae,bd,cc,db],[af,be,cd,dc],[bf,ce,dd],[cf,de],[df],
[af],[ae,bf],[ad,be,cf],[ac,bd,ce,df],[ab,bc,cd,de],[aa,bb,cc,dd],[ba,cb,dc],[ca,db],[da]]
Exemple:
[[1,2,1,2,1,2],
[1,2,3,4,5,6],
[6,5,4,3,2,1],
[2,1,2,1,2,1]]
Toutes les diagonales et anti-diagonales seraient:
[[1],[2,1],[1,2,6],[2,3,5,2],[1,4,4,1],[2,5,3,2],[6,2,1],[1,2],[1],
[2],[1,6],[2,5,1],[1,4,2,1],[2,3,3,2],[1,2,4,1],[1,5,2],[6,1],[2]]
Suppression de toutes les diagonales et anti-diagonales contenant uniquement des numéros uniques:
[[2,3,5,2],[1,4,4,1],[2,5,3,2],[1,4,2,1],[2,3,3,2],[1,2,4,1]]
La sortie est donc la quantité de diagonales et d'anti-diagonales contenant des nombres en double:
6
Règles du défi:
- Si la matrice d'entrée est vide, ne contient qu'un seul nombre ou ne contient que des nombres uniques sur toute la matrice, la sortie est toujours
0
. - L'entrée est garantie de ne contenir que des chiffres positifs
[1,9]
(sauf si elle est complètement vide). - La matrice sera toujours rectangulaire (c'est-à-dire que toutes les lignes ont la même longueur).
- Les E / S sont flexibles. L'entrée peut être considérée comme une liste de listes d'entiers, ou un tableau 2D d'entiers, ou un objet Matrix, comme une chaîne, etc. etc. Vous êtes également autorisé à prendre une ou les deux dimensions de la matrice comme entrée supplémentaire. s'il sauverait des octets dans la langue de votre choix.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
Input: Output:
[[1,2,1,2,1,2], 6
[1,2,3,4,5,6],
[6,5,4,3,2,1],
[2,1,2,1,2,1]]
[[]] 0
[[1,2], 0
[3,4]]
[[1,1], 2
[1,1]]
[[9,9,9], 6
[9,9,9],
[9,9,9]]
[[7,7,7,7], 8
[7,7,7,7],
[7,7,7,7]]
[[1,1,1], 1
[2,3,4],
[2,5,1]]
[[1,8,4,2,9,4,4,4], 12
[5,1,2,7,7,4,2,3],
[1,4,5,2,4,2,3,8],
[8,5,4,2,3,4,1,5]]
[[1,2,3,4], 4
[5,6,6,7],
[8,6,6,9],
[8,7,6,5]]
row
etcol
à ma liste de «fonctions extrêmement situationnelles». Solution vraiment intelligente.