Dados dos enteros, genera los dos enteros y luego el rango entre ellos (excluyendo ambos).
El orden del rango debe ser el mismo que el de la entrada.
Ejemplos:
Input Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]
Respuestas:
R ,
393330 bytesPruébalo en línea!
Gracias por los bytes guardados para user2390246 y J.Doe.
fuente
:
operador usa el primer elemento de ambos argumentos para 30 bytes05AB1E , 4 bytes
Pruébalo en línea!
Explicación
fuente
Python 3 ,
5248474241 bytesPruébalo en línea!
Implementaciones anteriores combinadas.
fuente
or-1
para guardar un byte.Python 2 (Cython) ,
3635 bytes¡Gracias a @nwellnhof por jugar golf en 1 byte!
Pruébalo en línea!
Python 2 , 37 bytes
¡Gracias a @JonasAusevicius por el puerto a CPython!
Pruébalo en línea!
fuente
lambda x:x+range(*x+[-cmp(*x)|1])[1:]
. Buena soluciónPerl 6 ,
2622 bytesPruébalo en línea!
Explicación
fuente
Python 2 , 40 bytes
Pruébalo en línea!
fuente
-(y<x)|1
. muy bueno pero no puedo entender por qué funciona! ¿Alguna posibilidad de que puedas explicarlo?y<x
comprueba siy
es estrictamente menor quex
, y devuelveTrue
si es así, de loFalse
contrario. Después de eso, unarios-
se aplica a ella, que convierteTrue
a-1
yFalse
a0
. El último paso es bit a bit O este número con1
. Esto obviamente deja1
(0b1
) sin afectar, y también deja-1
(-0b1
) sin afectar (el bit de signo de-1
se establece, por lo que se mantiene como tal). Sin embargo, se convierte0
a1
, por lo querange
no se queja de que yo use unstep
de0
.Python 3,
646251 byteslambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]
Pruébalo en línea!
Python 2,
5845 byteslambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)
Pruébalo en línea!
fuente
a<=b and
de ambas respuestas+
lugar deor
lambda a,b:[a,b,*range(a+1,b),*range(a-1,b,-1)]
Japt, 8 bytes
Pruébalo aquí
fuente
JavaScript (ES6), 51 bytes
Toma entrada como
(a)(b)
.Pruébalo en línea!
Comentado
fuente
Python 2 ,
474140 bytesPruébalo en línea!
Aquí está la mía, ahora que se han publicado muchas otras respuestas de Python
-6 bytes, gracias a GB
fuente
a<b or-1
es más corto para el tercer parámetro del rango. Lo más corto que obtuve fuelambda x,y:[x,y]+range(x+(x<y or-1),y,x<y or-1)
Java 10,
1091081041029362 bytesUsando una cadena delimitada por espacios:
Pruébalo en línea.
Usando una lista:
Pruébalo en línea.
(
a<b?++a<b:--a>b
puede ser++a<b||(a-=2)>b
para el mismo conteo de bytes: Pruébelo en línea para la Cadena o Pruébelo en línea para la Lista ).Respuesta anterior (
109108104102101 bytes) usando una matriz:-7 bytes gracias a @nwellnhof .
Pruébalo en línea.
Explicación:
fuente
a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;}
(130 bytes)var
, por lo que generalmente pongo esos en 8, y los que sí usanvar
como 10 (y los que usanString.repeat
como 11). :) Olvidé actualizarlo después de agregar las respuestas de Lista y Cadena, debería corregirse ahora. Gracias.APL (Dyalog Extended) , 5 bytes
Función de infijo anónimo.
Pruébalo en línea!
,
el primero y el último (literalmente, la concatenación de los argumentos),
y (lit. concatenado a)…
el rango~
sin,
el primero y el último (literalmente, la concatenación de los argumentos)fuente
Haskell, 34 bytes
Pruébalo en línea!
fuente
b-1
comob $ (-1)
. Usar en sub- 1
lugar.NegativeLiterals
en.Jalea , 4 bytes
Pruébalo en línea!
Cómo funciona
fuente
J 26 bytes
Pruébalo en línea!
Explicación:
Un verbo diádico (toma argumento izquierdo y derecho)
fuente
,,[:}.@}:<.+i.@-@(+*)@-
para 23 bytes y sin carcasa especial en el orden relativo de argumentos (más bien: está oculto dentro del signum*
). Siento que esto podría bajar a menos de 20 pero estoy cansado.Octava , 45 bytes
Pruébalo en línea!
fuente
J , 13 bytes
Pruébalo en línea!
fuente
i.
con un argumento negativo.Lote, 107 bytes
Toma datos como argumentos de línea de comandos. Explicación:
Salida de los dos enteros.
Pruebe los rangos ascendentes y descendentes.
Recorrer el rango inclusivo.
Excluir los dos enteros.
Salida del valor actual.
fuente
Pyth , 5 bytes
Entrada es una lista de dos elementos,
[input 1, input 2]
. Pruébelo en línea aquí , o verifique todos los casos de prueba a la vez aquí .fuente
F
lugar de.*
en listas de 2 elementos es un truco brillante que absolutamente usaré de ahora en adelante.Rojo , 75 bytes
Pruébalo en línea!
fuente
Limpio , 49 bytes
Pruébalo en línea!
fuente
Ruby ,
3340 bytesPruébalo en línea!
Solución temporal, tratando de encontrar una mejor idea.
fuente
[4,4]
esto da solo uno[4]
Python 2 ,
524741 bytesPruébalo en línea!
-5 gracias a @JoKing
-6 cortando el primer elemento del rango (idea robada y con crédito a @TFeld)
Versión no lambda ...
Python 2 ,
514947 bytesPruébalo en línea!
-2 con agradecimiento a @JoKing
fuente
APL (Dyalog Classic) , 29 bytes
Pruébalo en línea!
Un puerto de mi
J
soluciónfuente
PHP (102 bytes)
Salvadera
Desafortunadamente (para el golf) PHP tiene nombres de funciones bastante detallados, que contribuyen mucho a la longitud. Pero la idea básica es crear un rango, luego quitar el último elemento y volver a unirlo en el desplazamiento 1. Por
4,4
ejemplo, tuve que agregarcount($r=range($a,$b))>1?...:$r=[$a,$b];
que agrega bastante, y desafortunadamentearray_splice()
es por referencia que me golpeó por unos cuantos más bytes ($r= and a ;
). Todo por ese "caso de borde", jajaja.Bueno, de todos modos disfruta!
fuente
function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o[]=$i;print_r($o);}
function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
Clojure , 61 bytes
Una función anónima que toma un 2-vector como entrada y devuelve una lista.
Pruébalo en línea!
Explicación
fuente
D , 85 bytes
Pruébalo en línea!
Un puerto de la respuesta C ++ de @ HatsuPointerKun en D.
fuente
TI-BASIC,
3534 bytes-1 byte de Misha Lavrov
fuente
1-2(A>B
concos(π(A>B
.seq(
no funcionaría para entradas dondeA
yB
son iguales, desafortunadamente :(seq(
, por lo que ya no estoy convencido de que incluso sea más pequeño. Aún así, elcos(
truco debería ayudar.Carbón de leña , 15 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Imprima las entradas en líneas separadas.
Imprima el rango ascendente, si lo hay.
Imprima el rango inverso ascendente inverso, si lo hay.
fuente
Dart ,
8584 bytesPruébalo en línea!
>=
a>
fuente