Definiciones
- Una subsecuencia puede no ser contigua, por ejemplo,
[1, 1, 1]
es una subsecuencia de[1, 2, 1, 2, 1]
. - Una subsecuencia igual es una subsecuencia en la que cada elemento es igual.
- La subsecuencia igual más larga puede no ser única, por ejemplo,
[1, 1]
y[2, 2]
son las subsecuencias iguales más largas de[2, 1, 1, 2]
.
Entrada
Una lista no vacía de enteros positivos en uno de los siguientes formatos:
- como la implementación nativa de una serie de enteros positivos en su idioma
- como una cadena de enteros separados por nueva línea en decimal
- como una cadena de enteros separados por nueva línea en unario
- cualquier otro formato razonable
Salida
Todas las subsecuencias iguales más largas en cualquier orden en uno de los formatos a continuación:
- como una matriz 2D anidada en su idioma (si la entrada es una matriz)
- como una matriz aplanada con los elementos iguales contiguos
- cualquier otro formato razonable
Puntuación
Aunque estamos buscando algo largo, el código utilizado debe ser lo más corto posible en términos de número de bytes, ya que este es el código golf
Casos de prueba
Entradas:
[1, 2, 3]
[1, 2, 2, 1]
[1, 2, 3, 2, 1]
[1, 2, 1, 2, 3, 4, 1]
Salidas:
[[1], [2], [3]]
[[1, 1], [2, 2]]
[[1, 1], [2, 2]]
[[1, 1, 1]]
Tenga en cuenta que para las salidas anteriores, cualquier orden es válida.
Una matriz aplanada también es válida, siempre que los elementos iguales sean contiguos.
code-golf
array-manipulation
Monja permeable
fuente
fuente
1 2 3
,1 1 2 2
,1 1 2 2
,1 1 1
?Respuestas:
Jalea , 5 bytes
Pruébalo en línea!
Cómo funciona
fuente
Brachylog , 7 bytes
Pruébalo en línea!
Explicación
⊇
El orden natural genera primero las subsecuencias más largas, por lo que esas son las que terminan en el primer grupo.fuente
Pyth, 5 bytes
Banco de pruebas
Explicación:
Esto es implícitamente
S.M/QZQ
..M
es la función máxima, por lo que.M/QZQ
selecciona todos los elementos donde el valor de/QZ
, cuenta el número de ocurrencias del elemento en la entrada, es máximo.S
luego ordena la lista para que elementos idénticos sean contiguos.fuente
bash, 66 bytes
Parece que debería ser mucho más corto, pero no puedo entender cómo.
Pruébalo en línea!
¡Gracias a Leaky Nun por 3 bytes!
fuente
Python 2 ,
6863 bytesPruébalo en línea!
fuente
print
conreturn
.map
.Mathematica,
423125 bytes¡Gracias @GregMartin por 5 bytes y @MartinEnder por otro byte!
Explicación
fuente
Gather@#~MaximalBy~Length&
.MaximalBy[Length]@*Gather
.Apilado ,
555243 bytesPruébalo en línea!
Funciona mediante la codificación de longitud de ejecución de la entrada, la clasificación por ocurrencias, manteniendo las ocurrencias para las cuales el número de ocurrencias es máximo y la decodificación de longitud de ejecución. Salidas a través de una lista plana, como lo acepta el desafío.
fuente
En realidad , 23 bytes
¡Pruébelo en línea o ejecute todos los casos de prueba !
Gracias a Leaky Nun por señalar una mejora de un byte que realmente debería haber sido obvia para mí.
-3 bytes del formato de salida relajado
Explicación:
fuente
Python 2, 138 bytes
fuente
itertools
nunca es el más corto: pMATL , 10 bytes
Pruébalo en línea!
Explicación
Similar a mi respuesta Octave. Considere la entrada
[10, 20, 30, 20, 10]
como un ejemplo.fuente
Octava , 47 bytes
Pruébalo en línea!
Explicación
Las salidas segunda y tercera de
mode
(obtenidas como[~,b,c]=mode(...)
) respectivamente dan el número de repeticiones (b
) y una matriz de celdas de columna (c
) de los elementos más repetidos en la entrada (input(0)
). La matriz de celdasc
se repite horizontalmenteb
veces (repmat(c,1,b)
), se convierte en una lista separada por comas ({:}
) y se contacta horizontalmente ([...]
) para dar una matriz numérica, que se muestra (disp(...)
).fuente
05AB1E ,
85 bytesEmite una lista plana en orden
Utiliza la codificación 05AB1E . Pruébalo en línea!
fuente
CJam , 22 bytes
Este es un bloque anónimo (función) que toma la entrada desde la parte superior de la pila y la repara con la salida. La salida es una matriz aplanada con elementos iguales que son contiguos.
Pruébalo en línea!
Explicación
Considere la entrada
[10 20 30 20 10 ]
como un ejemplo.fuente
Perl 5, 58 bytes
fuente
APL (Dyalog) , 22 bytes
Requiere
⎕ML←3
cuál es el predeterminado en muchos sistemas.Programa:
s/⍨(⌈/=⊢)≢¨s←⊂⍨(⍋⊃¨⊂)⎕
⎕
obtener entrada numérica (evaluada)(
...)
función tácita⍋
los índices de elementos ascendentes de⊃¨
cada selección⊂
la matriz completa⊂⍨
partición cortando en sus aumentoss←
almacenar como s≢¨
cuenta cada uno(
…)
Función tácita⌈/
el máximo (conteo)=
es igual⊢
al argumento (los recuentos)s/⍨
filtrar s con esoFunción:
{s/⍨(⌈/=⊢)≢¨s←⊂⍨⍵[⍋⍵]}
{
...}
función anónima donde el argumento es⍵
⍵[⍋⍵]
sort (índice iluminado con índices de elementos ascendentes)⊂⍨
partición cortando en sus aumentoss←
almacenar como s≢¨
cuenta cada uno(
...)
función tácita⌈/
el máximo (conteo)=
es igual⊢
al argumento (los recuentos)s/⍨
filtre s con eso ¡ Pruébelo en línea!fuente
PHP, 69 bytes
Versión en línea
Formato de salida
clave = valor, valor = contar
PHP, 96 bytes
Versión en línea
Formato de salida
Clave 1D = valor
Clave 2D = posición en la matriz de entrada para cada valor
PHP, 97 bytes
fuente
JavaScript (ES6),
8483 bytesDevuelve una matriz aplanada ordenada.
Casos de prueba
Mostrar fragmento de código
fuente
CJam, 24 bytes
Quería hacer esto en 05ab1e, pero me di por vencido: P
Esto es un bloque La entrada y la salida son matrices en la pila.
Pruébalo en línea!
Explicación:
fuente
$W=
lugar del primero0=
.Clojure, 65 bytes
Sin golf:
fuente
C #, 145 bytes
Esto debe ser posible también mejor, sin embargo, estoy un poco atascado.
Explicación
Probablemente un enfoque totalmente diferente sería mucho más corto, por lo que el desafío C # todavía está abierto :)
fuente
Ruby , 57 bytes
Pruébalo en línea!
fuente