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