Relacionado: ¡ Dime cuántos problemas matemáticos tengo que hacer!
Reto
Dada una lista entera estrictamente positiva estrictamente ascendente L y un número entero 3 ≤ N ≤ longitud de L, reemplace los enteros medios de las series enteras consecutivas de L de longitud ≥ N con un solo guión -
.
Reglas
- El espacio en blanco horizontal es irrelevante.
- Opcionalmente, puede conservar los caracteres de introducción, separación y terminación del formato de lista predeterminado de su idioma. Ver ejemplos de formatos , a continuación.
Ejemplos de datos
Todos estos ejemplos usan L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Ejemplos de formato
Para las entradas
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
y N = 3
todas las líneas a continuación hay ejemplos de respuestas válidas, tanto como listas reales como cadenas:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
Lo mismo se aplica con otros formatos de lista, como {1 2 3}
y (1; 2; 3)
etc. ¿Tiene dudas? ¡Pedir!
-
o se nos permite usar un símbolo diferente?_
para poder seguir operando en matrices numéricas en J.'-'
? También es posible que pueda clasificar todo antes de insertar guiones, ¿no?[3,5,-8,10,-12,14,16,-22,24]
(este parece ser el formato que tiene más sentido en términos de tipos)Respuestas:
Python 2 ,
132115bytes-17 bytes gracias a Leaky Nun
Pruébalo en línea!
fuente
while t+i==x[i]:
? ¿O me estoy perdiendo algo?i
fuera más grande que el tamaño dex
Jalea ,
26 2523 bytes-2 bytes gracias a Erik the Outgolfer (al traer la declaración if al enlace principal)
Un enlace diádico que devuelve una lista en el
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
formato.Pruébalo en línea! (el pie de página se separa con espacios, para imprimir el formato de ejemplo de datos).
¿Cómo?
fuente
Pyth, 23 bytes
Pruébalo en línea
Cómo funciona
fuente
Japt , 24 bytes
Pruébalo en línea!
Explicación
fuente
Mathematica, 128 bytes
entrada
salida
Pruébalo en línea!
fuente
APL, 38 bytes
fuente
PHP 7,
1371361341171010108bytesToma
L
del primer argumento, enumere los elementos después de eso. Ejecutar-nr
o probarlo en línea .Reemplace
$L=($a=$argv)
con$a=$argv,$L=
(+1 byte) para PHP <7.Descompostura
fuente
Retina , 101 bytes
Pruébalo en línea! Toma la lista separada por espacios
L
en la primera línea y el número enteroN
en la segunda línea. Explicación: La primera etapa convierte la entrada a unario. La segunda etapa cambia el espacio entre enteros consecutivos a anX
. La tercera etapa busca corridas de enteros consecutivos cuya longitud es menorN
yX
vuelve a cambiar sus espacios a espacios. La cuarta etapa cambia laX
s a-
(esto fue 3 bytes más corto que usar-
s en primer lugar). La quinta etapa elimina todos los enteros que aún quedan en el medio de una ejecución, así comoN
, mientras que la etapa final se convierte de nuevo a decimal.fuente
Ruby, 68 bytes
Devuelve una cadena como por ejemplo
3,5-8,10-12,14,16-22,24
.Pruébalo en línea!
fuente
J , 40 bytes
Pruébalo en línea!
Usos en
_
lugar de-
.Explicación
fuente
Gelatina,
393736 bytesPruébalo en línea
Toma la matriz a través de argumentos, y el entero a través de STDIN. El enlace TIO utiliza el pie de página,
ÇG
por lo que la salida está separada por espacios.¿Cómo? (Array:
a
, Integer:n
)Supongo que me caí ... de plano en este caso.
fuente
JavaScript (ES6),
126119 bytesUna función anónima. Toma la entrada en el orden
Array L, Integer N
y devuelve el resultado como una cadena separada por comas.Mostrar fragmento de código
fuente
e=>c=>
.Dyalog APL v16.0,
82807876756562 bytesWow, esto es ... malo. Probablemente haya una solución mucho más corta con stencil.
Pruébalo en línea!
Sugerencias de golf bienvenidas!
fuente