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 9
jako wynik dla N = 1, 94
jako wynik dla N = 2 i 940
jako wynik dla N = 3.
Siatka 4 × 3
7423
1531
6810
miałby 8
jako wynik dla N = 1, 86
dla N = 2, 854
dla N = 3 i 7423
dla N = 4.
Siatka 3 × 3
000
010
000
miałby wynik 1
dla N = 1, a 10
dla N = 2 i N = 3 ( 010
obowiązuje również dla N = 3).
Siatka 1 × 1
0
miałby wynik 0
dla 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.