Proste wyzwanie: biorąc pod uwagę serię liczb całkowitych dodatnich, znajdź liczbę zawierającą wśród jej cyfr najdłuższy ciąg kolejnych cyfr. Sztuczka? Cyfry w biegach mogą owijać się wokół możliwych wartości ( 0123456789
) i biegać wstecz. Więc oba 2345
, 89012
i 5432109
są ważne przebiegi kolejnych cyfr (ale nie 3456765
ani 321090123
jak bieg musi być zawsze w tym samym kierunku, choć 3456765
można uznać za dwóch tras: 34567
a 765
). W przypadku remisów zwróć pierwszy.
Przypadki testowe:
Input: [3274569283, 387652323, 23987654323648, 2345687913624]
Output: 23987654323648
(The run is 98765432; run length: 8)
Input: [123012363672023, 098761766325432, 15890123456765]
Output: 15890123456765
(The run is 8901234567; run length: 10)
Input: [43, 19, 456]
Output: 456
Input: [5, 9, 0]
Output: 5
Input: [71232107, 7012347]
Output: 7012347
Input: [1234, 32109876]
Output: 32109876
Input: [9090, 123]
Output: 123
Uwagi:
- Na wejściu będzie co najmniej jedna liczba.
- Liczby wejściowe mogą zawierać początkowe zera.
- Dane wejściowe i wyjściowe mogą być w dowolnym rozsądnym formacie . Więc liczby wejściowe można traktować jako ciągi znaków, listy cyfr / znaków ...
- Dane wyjściowe mogą zawierać końcowe i / lub wiodące białe znaki oraz znaki nowej linii, o ile drukowana jest liczba.
- To jest golf golfowy , więc wygrywa najkrótszy program / funkcja dla każdego języka!
[7,8,1,6]
ma maksymalny przebieg[7,8]
raczej niż[6,7,8]
, tak?78
w takim przypadku maksymalny przebieg jest w tym przypadku.Odpowiedzi:
Galaretka , 18 bajtów
Wypróbuj online!
Pobiera i zwraca jako listę cyfr, aby zachować wiodące zera.
źródło
3210
pierwszy numer btw)A
tam jest.JavaScript (ES6),
10410298 bajtówPobiera dane wejściowe jako listę list cyfr. Zwraca najlepszy.
Przypadki testowe
Pokaż fragment kodu
źródło
Galaretka ,
18 1615 bajtówŁącze monadyczne pobierające listę cyfr i zwracające skrajnie lewą, zawierającą maksymalny przebieg, zgodnie z opisem.
Wypróbuj online! lub zobacz pakiet testowy (z przetwarzaniem, aby we / wy wyglądało tak, jak w pytaniu).
W jaki sposób?
źródło
V€
nie jestem pewien, być może będziesz musiał liczyć początkowe zera.Python 2 , 118 bajtów
Pobiera listę cyfr
a
; zwraca jedną ze swoich list.Wypróbuj online!
źródło
[[9,0,9,0],[1,2,3]]
.Łuska , 20 bajtów
Pobiera i zwraca listę list cyfr. Wypróbuj online!
Wyjaśnienie
źródło
MATLAB, 130 bajtów
Weź dane do tablicy, tablicę różnic kolumn [X (2) -X (1), ..., X (n) -X (n-1)], sprawdź najczęstszą wartość w tablicy (1 rosnąco - 1 w przeciwnym razie), uzyskaj indeks dla wartości najczęstszej lub -9 pomnożonej przez najczęstszą wartość (-9 występuje w porządku rosnącym, 9 w przeciwnym razie), znajdź kolejne wskaźniki (tj. Których różnica jest równa 1) i zsumuj ją proszę, bo jest późno. Wydaj największy.
Wypróbuj online!
źródło