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 7888885466662716666powinno 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
122222233433wynikiem jest33(1222222[33]4[33]; długość 2 występuje dwukrotnie), a nie222(1[222][222]33433długość 3 występuje dwukrotnie, przy czym oba są nieprawidłowe).- Dotyczy to wszystkich liczb liczonych do licznika wystąpień. Tj. Z
811774177781382danymi 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]382dł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,10002000które powinny być generowane000, w przypadku których większość języków byłaby wypisywana0domyś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]
222ograniczony innymi liczbami całkowitymi. Chyba nie powinniśmy liczyć wystąpienia, które jest podciągiem 1111. Rzeczywiście jednak lepiej poczekać na OP.
1112221112221111nich 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 1111będzie się zawsze liczył jako 1111, a nie jako 1i 111lub 11i 11. Dodam swój przypadek testowy, ale wyjście jest jedno lub oba 111i 222.
8888858888866656665666. Jeśli poprawnie zinterpretowałem wyzwanie, zarówno Brachylog, jak i 05AB1E zawodzą.