Виклик:
Враховуючи додатне ціле число, виведіть найдовший одноцифровий підряд, який відбувається принаймні вдвічі, і має межі іншої цифри (або початок / кінець цілого числа).
Приклад:
Введення: 7888885466662716666
Найдовшим підрядом однієї цифри було б 88888
( 7[88888]5466662716666
) довжиною 5. Однак це підпорядкування відбувається лише один раз у цілому.
Натомість результат для введення 7888885466662716666
повинен бути 6666
( 78888854[6666]271[6666]
), оскільки він виникає (принаймні) двічі.
Правила виклику:
- Довжина підрядників має пріоритет над тим, скільки разів вона виникає. (Тобто з введенням
8888858888866656665666
, ми виводимо88888
([88888]5[88888]66656665666
; довжина 5, трапляється двічі), а не666
(88888588888[666]5[666]5[666]
; довжина 3, трапляється тричі). - Якщо довжина декількох підрядів однакова, ми виводимо одне з найбільшою кількістю випадків. Тобто з введенням
3331113331119111
ми виводимо111
(333[111]333[111]9[111]
; довжина 3, трапляється тричі), а не333
([333]111[333]1119111
; також довжина 3, але виникає двічі) - Якщо кількість подій і довжина декількох підрядів рівні, ви можете вивести будь-який з них або всі (у будь-якому порядку). Тобто з введенням
777333777333
, можливими виходами є777
:;333
;[777, 333]
; або[333, 777]
. - Підпорядкованість повинна мати межі інших цифр (або початок / кінець цілого числа). Тобто з введенням
122222233433
результат є33
(1222222[33]4[33]
; довжина 2, трапляється двічі), а не222
(1[222][222]33433
, довжина 3, відбувається два рази з обома недійсними).- Це стосується всіх чисел, які зараховуються до лічильника подій. Тобто з введенням
811774177781382
результат є8
([8]117741777[8]13[8]2
; довжина 1, трапляється тричі), а не77
(811[77]41[77]781382
/811[77]417[77]81382
; довжина 2, зустрічається двічі з одним недійсним) ні1
(8[1][1]774[1]7778[1]382
; довжина 1, відбувається чотири рази з двома недійсними).
- Це стосується всіх чисел, які зараховуються до лічильника подій. Тобто з введенням
- Ви можете припустити, що вхід не буде містити жодних цифр
0
(він збігатиметься[1-9]+
). (Це дозволяє уникнути того, щоб мати справу з тестовими випадками,10002000
які повинні виводитися000
, де більшість мов виводиться0
за замовчуванням.) - Можна припустити, що вхід завжди буде містити принаймні один дійсний вихід.
- Введення / виведення є гнучкими. Може бути списком / масивом / потоком цифр / байтів / символів або як рядок замість одного цілого числа.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Стандартні правила застосовуються до вашої відповіді, тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу "повернення". Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також настійно рекомендується додавати пояснення до своєї відповіді.
Тестові приклади:
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
при обмеженні інших цілих чисел. Я думаю, ми просто не повинні рахувати події, що є підрядком 1111
. Хоча, краще, почекайте ОП.
1112221112221111
них підпослідовності і їх підрахунок: 1111 (1)
, 111 (2)
, 222 (2)
. Так як ми тільки виводить послідовності відбувається , по крайней мере в два рази, то вихід може бути одним з: 111
, 222
, [111,222]
, [222,111]
. (Див. Четверте правило для отримання додаткової інформації.) В основному 1111
, коли-небудь вважатимуться як 1111
, а не як 1
і 111
або 11
та 11
. Я додам ваш тестовий випадок, але вихідний або один, і інший 111
і 222
.
8888858888866656665666
. Якщо я правильно трактував виклик, рішення Brachylog і 05AB1E не вдається.