Desafío:
Dado un número entero positivo, genera la subsecuencia de un solo dígito más larga que ocurre al menos dos veces, Y tiene límites de otro dígito (o el inicio / final del entero).
Un ejemplo:
Entrada: 7888885466662716666
La subsecuencia más larga de un solo dígito sería 88888
( 7[88888]5466662716666
) con una longitud de 5. Sin embargo, esta subsecuencia solo ocurre una vez en el entero.
En cambio, el resultado para la entrada 7888885466662716666
debe ser 6666
( 78888854[6666]271[6666]
), ya que ocurre (al menos) dos veces.
Reglas de desafío:
- La longitud de las subsecuencias tiene prioridad sobre la cantidad de veces que ocurre. (Es decir, con entrada
8888858888866656665666
, salimos88888
([88888]5[88888]66656665666
; longitud 5, ocurre dos veces), y no666
(88888588888[666]5[666]5[666]
; longitud 3, ocurre tres veces). - Si la longitud de las subsecuencias múltiples es igual, sacamos la que tiene el mayor recuento de ocurrencias. Es decir, con entrada
3331113331119111
, salimos111
(333[111]333[111]9[111]
; longitud 3, ocurre tres veces), y no333
([333]111[333]1119111
; longitud 3 también, pero ocurre dos veces) - Si el recuento de ocurrencia y la longitud de las subsecuencias múltiples son iguales, puede generar cualquiera de ellos o todos (en cualquier orden). Es decir, con la entrada
777333777333
, las salidas posibles son:777
;333
;[777, 333]
; o[333, 777]
. - La subsecuencia debe tener límites de otros dígitos (o el inicio / final del número entero). Es decir, con la entrada,
122222233433
el resultado es33
(1222222[33]4[33]
; longitud 2, ocurre dos veces) y no222
(1[222][222]33433
, longitud 3, ocurre dos veces con ambos inválidos).- Esto se aplica a todos los números que se cuentan para el contador de ocurrencias. Es decir, con la entrada,
811774177781382
el resultado es8
([8]117741777[8]13[8]2
; longitud 1, ocurre tres veces) y no77
(811[77]41[77]781382
/811[77]417[77]81382
; longitud 2, ocurre dos veces con un inválido) ni1
(8[1][1]774[1]7778[1]382
; longitud 1, ocurre cuatro veces con dos inválidos).
- Esto se aplica a todos los números que se cuentan para el contador de ocurrencias. Es decir, con la entrada,
- Puede suponer que la entrada no contendrá ningún dígito
0
(coincidirá[1-9]+
). (Esto es para evitar tener que lidiar con casos de prueba como el10002000
que debería generar000
, donde la mayoría de los idiomas generarían0
de forma predeterminada). - Puede suponer que la entrada siempre contendrá al menos una salida válida.
- Las E / S son flexibles. Puede ser una lista / matriz / secuencia de dígitos / bytes / caracteres o como una cadena en lugar de un solo entero.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de código de golf lo desalienten de publicar respuestas con idiomas que no sean de código. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
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
cuando está limitado por otros enteros. Supongo que no deberíamos contar la ocurrencia de la que es una subcadena 1111
. Sin embargo, es mejor esperar al OP.
1112221112221111
estas son las subsecuencias y su población en: 1111 (1)
, 111 (2)
, 222 (2)
. Ya que sólo da salida a secuencias que ocurren al menos dos veces, la salida puede ser uno de: 111
, 222
, [111,222]
,[222,111]
. (Consulte la cuarta regla para obtener más información.) Básicamente 1111
solo contará como 1111
, y no como 1
y 111
o 11
y 11
. Agregaré su caso de prueba, pero el resultado es uno o ambos de 111
y 222
.
8888858888866656665666
. Si interpreté el desafío correctamente, fallan las soluciones Brachylog y 05AB1E.