Виклик:
Враховуючи додатне ціле число, виведіть найдовший одноцифровий підряд, який відбувається принаймні вдвічі, і має межі іншої цифри (або початок / кінець цілого числа).
Приклад:
Введення: 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 не вдається.