Écrivez un programme ou une fonction qui accepte un entier positif N et une grille de chiffres décimaux (0 à 9) de largeur W et de hauteur H (qui sont également des entiers positifs). Vous pouvez supposer que N sera inférieur ou égal au plus grand de W et H.
Imprimez ou renvoyez le plus grand nombre de N contigus qui apparaît horizontalement ou verticalement dans la grille, écrit dans l'ordre de lecture normal ou inversé.
- Les lignes diagonales de chiffres ne sont pas prises en compte.
- La grille ne s'enroule pas, c'est-à-dire qu'elle n'a pas de conditions aux limites périodiques.
Par exemple, la grille 3 × 3
928
313
049
aurait 9
comme sortie pour N = 1, 94
comme sortie pour N = 2, et940
comme sortie pour N = 3.
La grille 4 × 3
7423
1531
6810
aurait 8
comme sortie pour N = 1, 86
pour N = 2, 854
pour N = 3, et7423
pour N = 4.
La grille 3 × 3
000
010
000
aurait une sortie 1
pour N = 1, et 10
pour N = 2 et N = 3 (010
est également valable pour N = 3).
La grille 1 × 1
0
aurait une sortie 0
pour N = 1.
Vous pouvez prendre l'entrée dans n'importe quel format raisonnable et pratique. Par exemple, la grille peut être une chaîne de chiffres séparée par des sauts de ligne, ou un tableau multidimensionnel, ou une liste de listes de chiffres, etc. Les zéros de tête sont autorisés dans la sortie s'ils faisaient partie de la grille.
Il s'agit de code-golf , donc le code le plus court en octets gagne, mais j'attribuerai également des points brownie (c'est-à-dire des votes plus probables) pour les réponses qui peuvent montrer que leur algorithme est efficace sur le plan des calculs.
Réponses:
Pyth,
2219 octets3 octets grâce à Jakube.
Essayez-le en ligne.
Si nous sommes autorisés à imprimer des zéros non significatifs, le code est de 18 octets:
la source
s
.CJam,
39363534 octetsJuste rapidement, avant que @Dennis ne se réveille: P
Essayez-le en ligne .
Explication
L'algorithme de base consiste à prendre les quatre rotations de la grille et à diviser chaque ligne en morceaux de longueur
N
(ou la longueur de ligne, la plus petite des deux). Convertissez ensuite les morceaux en pouces et prenez le plus gros.la source
few
-il quelque chose de spécial ou s'agit-il de trois commandes distinctes?ew
appliqué en utilisantf
, ou "mapper avec un paramètre supplémentaire". Par exemple,["abcd" "efgh"] 2 few
résulte en[["ab" "bc" "cd"] ["ef" "fg" "gh"]]
.Burlesque
Pas encore une réponse finale mais cela fonctionnera probablement comme ceci:
Comment N et la grille sont-ils donnés exactement?
la source