Escreva um programa ou função que obtenha um número inteiro positivo N e uma grade de dígitos decimais (0 a 9) com largura W e altura H (que também são números inteiros positivos). Você pode assumir que N será menor ou igual ao maior de W e H.
Imprima ou retorne o maior número contíguo de N dígitos que aparece horizontal ou verticalmente na grade, gravado na ordem de leitura normal ou no sentido inverso.
- Linhas diagonais de dígitos não são consideradas.
- A grade não contorna, ou seja, não possui condições de contorno periódicas.
Por exemplo, a grade 3 × 3
928
313
049
teria 9
como saída para N = 1, 94
como saída para N = 2 e 940
como saída para N = 3.
A grade 4 × 3
7423
1531
6810
teria 8
como saída para N = 1, 86
para N = 2, 854
para N = 3 e 7423
para N = 4.
A grade 3 × 3
000
010
000
teria saída 1
para N = 1 e 10
para N = 2 e N = 3 ( 010
também é válido para N = 3).
A grade 1 × 1
0
teria saída 0
para N = 1.
Você pode receber a entrada em qualquer formato razoável e conveniente. por exemplo, a grade pode ser uma sequência de dígitos separados por nova linha, ou uma matriz multidimensional, ou uma lista de listas de dígitos, etc. Os zeros à esquerda são permitidos na saída se eles fizerem parte da grade.
Isso é código-golfe , então o código mais curto em bytes vence, mas também atribuirei pontos de brownie (ou seja, mais prováveis de upvotes) por respostas que possam mostrar que seu algoritmo é computacionalmente eficiente.