El reto
El programa debe devolver todos los números incluidos en un grupo (secuencia separada por comas y guiones) de números.
Reglas
s
es la secuencia de secuencia;- todos los números incluidos en
s
son positivos ; - los números siempre aumentarán ;
- los números nunca se repetirán
- cuando respondas, muestra la salida para
s="1,3-5,9,16,18-23"
Ejemplos
input(s) outputs
-----------------
1 1
1,2 1,2
1-4 1,2,3,4
1-4,6 1,2,3,4,6
1-4,8-11 1,2,3,4,8,9,10,11
Buena suerte. =)
4-9,1-2
o1-3,9-6
?Respuestas:
GolfScript (24 caracteres)
P.ej
De hecho, tengo cuatro soluciones de 24 caracteres, pero elegí esta porque no tiene caracteres alfanuméricos.
Cómo funciona
fuente
-
?Perl
252625$_
es la cadena de secuenciaSesión de muestra:
Se agregó 1 carácter al recuento de caracteres para la opción (gracias Gareth, ..kinda).
-n
-p
fuente
n
opción.-M5.010
e intercambiar-e
por-E
golfscript,
4645Mi primer programa de script de golf, tardó horas en completarse.
Puedes probarlo en http://golfscript.apphb.com/
Mi mejor tiro para explicar esta atrocidad:
editar 1: cambió el último {}% ~ a {} /, también es probable que mi descripción sea incorrecta.
fuente
{
y la final}:r;
y también puede guardar una reemplazando1-
por(
. (Por cierto, IIRC es un truco que también me perdí en mi primer programa GolfScript){...}%~
y{...}/
. Si está accediendo a algo más abajo en la pila,integer $
entonces el primero es más simple, ya que no tiene que ajustar el número entero cada vez para compensar lo que esté dejando en la pila.R , 44 bytes
Pruébalo en línea!
Redefina
-
para significarseq
(es decir:
), rodee la entradac()
y evalúe la expresión correspondiente.fuente
K, 47
Caso de prueba
fuente
","/:$,/{{x+!1+y-x}. 2#"J"$"-"\:x}'","\:0:0
por 43 bytesJalea , 9 bytes
Pruébalo en línea!
La diada de rango
r
toma dos argumentos a cada lado y produce un rango inclusivo entre ellos.fuente
J,
5343413938 caracteresToma entrada del teclado:
Salida para el caso de prueba solicitado:
fuente
Hasio , 173 bytes
Esto fue bastante largo y podría no estar compitiendo ya que hay un final al final.
Ejecute en línea y vea expandido aquí
fuente
Perl (37)
fuente
s="1,3-5,9,16,18-23"
, graciassay join",",eval<>=~s/-/../gr
a 29 bytesPython 2.7,
147138BytesUso:
No es el mejor programa ...
fuente
MATLAB, 47 bytes
Este fragmento lee una entrada de cadena desde la ventana de comandos, reemplaza '-' por ':', agrega corchetes a la cadena y luego la evalúa, para que la entrada se expanda a una matriz completa de números.
Entrada de ejemplo:
Salida de ejemplo:
Creo que esta salida está permitida, ya que el desafío solo dice que todos los números en un grupo deben mostrarse.
fuente
Perl 6 , 36 bytes
fuente
PowerShell,
7971 bytesPruébalo en línea!
La parte interna cambia "1,5-9,12" a un formato "(1), (5..9), (12)" que PowerShell entiende, luego lo ejecuta con iex, lo que crea una matriz de matrices. Luego, recorra cada matriz interna, luego finalmente una todos los elementos de la matriz externa
Toma prestado el código de mi respuesta "Ayuda para administrar mi tiempo"
Uso
-8 bytes gracias a Veskah
fuente
K (oK) ,
4031 bytesSolución
Pruébalo en línea!
Explicación:
Logró más golf mientras agregaba la explicación ...
fuente
Clojure, 110 bytes
Tratar con cuerdas no es muy divertido :(
fuente
Python 2 , 112 bytes
Respuesta bastante simple y directa.
Pruébalo en línea!
fuente
Ruby
-p
, 33 bytesPruébalo en línea!
fuente
Japt , 12 bytes
Intentalo
fuente
c@
con£
?£
en lugar de los primeros 5 bytes.Python 2 , 90 bytes
Pruébalo en línea!
fuente