Napisz program lub funkcję, która przyjmuje dodatnią liczbę całkowitą N i siatkę cyfr dziesiętnych (od 0 do 9) o szerokości W i wysokości H (które są również dodatnimi liczbami całkowitymi). Możesz założyć, że N będzie mniejsze lub równe większej z W i H.
Wydrukuj lub zwróć największą ciągłą liczbę cyfr N, która pojawia się poziomo lub pionowo na siatce, zapisaną w normalnej kolejności odczytu lub odwrotnie.
- Ukośne linie cyfr nie są uwzględniane.
- Siatka nie zawija się, tzn. Nie ma okresowych warunków brzegowych.
Na przykład siatka 3 × 3
928
313
049
miałby 9jako wynik dla N = 1, 94jako wynik dla N = 2 i 940jako wynik dla N = 3.
Siatka 4 × 3
7423
1531
6810
miałby 8jako wynik dla N = 1, 86dla N = 2, 854dla N = 3 i 7423dla N = 4.
Siatka 3 × 3
000
010
000
miałby wynik 1dla N = 1, a 10dla N = 2 i N = 3 ( 010obowiązuje również dla N = 3).
Siatka 1 × 1
0
miałby wynik 0dla N = 1.
Możesz pobrać dane wejściowe w dowolnym dogodnym rozsądnym formacie. np. siatka może być ciągiem cyfr oddzielonym znakiem nowej linii, tablicą wielowymiarową lub listą cyfr itp. Zera wiodące są dozwolone w danych wyjściowych, jeśli były częścią siatki.
To jest gra w golfa kodu , więc wygrywa najkrótszy kod w bajtach, ale przyznam także punkty brownie (tj. Bardziej prawdopodobne upvotes) za odpowiedzi, które mogą wykazać, że ich algorytm jest wydajny obliczeniowo.