Wyzwanie:
Biorąc pod uwagę dodatnią liczbę całkowitą, wypisz najdłuższą jednocyfrową podsekwencję, która występuje co najmniej dwukrotnie, AND ma granice innej cyfry (lub początek / koniec liczby całkowitej).
Przykład:
Wejście: 7888885466662716666
Najdłuższa podsekwencja pojedynczej cyfry to 88888
( 7[88888]5466662716666
) o długości 5. Jednak ta podsekwencja występuje tylko raz w liczbie całkowitej.
Zamiast tego wynikiem dla danych wejściowych 7888885466662716666
powinno być 6666
( 78888854[6666]271[6666]
), ponieważ występuje (przynajmniej) dwa razy.
Zasady konkursu:
- Długość podsekwencji ma pierwszeństwo przed liczbą wystąpień. (Tj. Z wejściem
8888858888866656665666
, wyprowadzamy88888
([88888]5[88888]66656665666
; długość 5 występuje dwukrotnie), a nie666
(88888588888[666]5[666]5[666]
; długość 3 występuje trzy razy). - Jeśli długość wielu podsekwencji jest równa, wyprowadzamy tę o największej liczbie wystąpień. Tj. Z wejściem
3331113331119111
, wyprowadzamy111
(333[111]333[111]9[111]
; długość 3 występuje trzykrotnie), a nie333
([333]111[333]1119111
; długość 3 również występuje, ale występuje dwukrotnie) - Jeśli liczba wystąpień i długość wielu podsekwencji są równe, możesz wyprowadzić jeden z nich lub wszystkie (w dowolnej kolejności). To znaczy z wejściem
777333777333
, możliwymi wyjściami są777
:;333
;[777, 333]
; lub[333, 777]
. - Podsekwencja musi mieć granice innych cyfr (lub początek / koniec liczby całkowitej). Tj. Z wejściem
122222233433
wynikiem jest33
(1222222[33]4[33]
; długość 2 występuje dwukrotnie), a nie222
(1[222][222]33433
długość 3 występuje dwukrotnie, przy czym oba są nieprawidłowe).- Dotyczy to wszystkich liczb liczonych do licznika wystąpień. Tj. Z
811774177781382
danymi wejściowymi wynik jest8
([8]117741777[8]13[8]2
; długość 1 występuje trzykrotnie) i nie77
(811[77]41[77]781382
/811[77]417[77]81382
; długość 2 występuje dwukrotnie z jednym nieważnym) ani1
((8[1][1]774[1]7778[1]382
długość 1 występuje cztery razy z dwoma nieważnym).
- Dotyczy to wszystkich liczb liczonych do licznika wystąpień. Tj. Z
- Możesz założyć, że dane wejściowe nie będą zawierać żadnych cyfr
0
(będą pasować[1-9]+
). (Ma to na celu uniknięcie konieczności radzenia sobie z przypadkami testowymi takimi jak te,10002000
które powinny być generowane000
, w przypadku których większość języków byłaby wypisywana0
domyślnie). - Możesz założyć, że dane wejściowe zawsze będą zawierać co najmniej jedno prawidłowe dane wyjściowe.
- Oba wejścia / wyjścia są elastyczne. Może być listą / tablicą / strumieniem cyfr / bajtów / znaków lub ciągiem znaków zamiast pojedynczej liczby całkowitej.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
Input: 7888885466662716666 / [7,8,8,8,8,8,5,4,6,6,6,6,2,7,1,6,6,6,6]
Output: 6666 / [6,6,6,6]
Input: 3331113331119111 / [3,3,3,1,1,1,3,3,3,1,1,1,9,1,1,1]
Output: 111 / [1,1,1]
Input: 777333777333 / [7,7,7,3,3,3,7,7,7,3,3,3]
Possible outputs: 777; 333; [777,333]; [333;777] / [7,7,7]; [3,3,3]; [[7,7,7],[3,3,3]]; [[3,3,3],[7,7,7]]
Input: 122222233433 / [1,2,2,2,2,2,2,3,3,4,3,3]
Output: 33 / [3,3]
Input: 811774177781382 / [8,1,1,7,7,4,1,7,7,7,8,1,3,8,2]
Output: 8 / [8]
Input: 555153333551 / [5,5,5,1,5,3,3,3,3,5,5,1]
Output: 1 / [1]
Input: 12321 / [1,2,3,2,1]
Possible outputs: 1; 2; [1,2]; [2,1] / [1]; [2]; [[1],[2]]; [[2],[1]]
Input: 944949949494999494 / [9,4,4,9,4,9,9,4,9,4,9,4,9,9,9,4,9,4]
Output: 4 / [4]
Input: 8888858888866656665666 / [8,8,8,8,8,5,8,8,8,8,8,6,6,6,5,6,6,6,5,6,6,6]
Output: 88888 / [8,8,8,8,8]
Input: 1112221112221111 / [1,1,1,2,2,2,1,1,1,2,2,2,1,1,1,1]
Output: 111; 222; [111,222]; [222,111] / [1,1,1]; [2,2,2]; [[1,1,1],[2,2,2]]; [[2,2,2],[1,1,1]]
Input: 911133111339339339339339 / [9,1,1,1,3,3,1,1,1,3,3,9,3,3,9,3,3,9,3,3,9,3,3,9]
Output: 111 / [1,1,1]
222
ograniczony innymi liczbami całkowitymi. Chyba nie powinniśmy liczyć wystąpienia, które jest podciągiem 1111
. Rzeczywiście jednak lepiej poczekać na OP.
1112221112221111
nich są podciągi i ich zliczenia: 1111 (1)
, 111 (2)
, 222 (2)
. Skoro tylko wyprowadza sekwencje występujące co najmniej dwa razy, wyjście może być jednym z: 111
, 222
, [111,222]
, [222,111]
. (Zobacz czwartą zasadę, aby uzyskać więcej informacji.) Zasadniczo 1111
będzie się zawsze liczył jako 1111
, a nie jako 1
i 111
lub 11
i 11
. Dodam swój przypadek testowy, ale wyjście jest jedno lub oba 111
i 222
.
8888858888866656665666
. Jeśli poprawnie zinterpretowałem wyzwanie, zarówno Brachylog, jak i 05AB1E zawodzą.