Su programa debe tomar una matriz como entrada.
La matriz:
- Siempre será 1 dimensional
- Solo contendrá enteros
- Puede estar vacío
El programa debe revertir la matriz y luego agregar los elementos al original, por ejemplo:
Entrada: [1, 2, 3]
Original: [1, 2, 3]
Invertido: [3, 2, 1]
[1, 2, 3]
+ + +
[3, 2, 1]
[1+3, 2+2, 3+1]
Salida: [4, 4, 4]
Casos de prueba:
#In #Out
[8, 92], [100, 100]
[1, 2, 3], [4, 4, 4]
[5, 24, 85, 6], [11, 109, 109, 11]
[], []
[999], [1998]
Este es el código de golf , gana el código más corto (en bytes).
code-golf
array-manipulation
Noah Cristino
fuente
fuente
Respuestas:
Haskell , 20 bytes
Ahorro de 5 bytes cambiando a un punto libre como lo sugiere nimi
Pruébalo en línea!
fuente
zipWith(+)=<<reverse
.main
para compilar.=<<
desde la mónada función que se define como:(=<<) f g x = f (g x) x
. Aquí, escrito en infijo:(zipWith(+) =<< reverse) x
->zipWith(+) (reverse x) x
.Jalea , 2 bytes
Pruébalo en línea!
o
Pruébalo en línea! (Gracias @ Mr. Xcoder por el segundo programa)
explicación, aunque es bastante evidente
Para una matriz vacía
[]
, esto no genera nada. Eso es correcto. La representación de Jelly de una lista vacía es simplemente nada. Tenga en cuenta que la representación de Jelly de una lista con un solo elemento es solo el elemento en sí. AgregueŒṘ
al código para ver la representación interna de Python de la salida.fuente
[9]
él, genera 18 en lugar de[18]
, y 2) cuando se prueba en[]
él no genera nada.+Ṛ
también funcionaJavaScript (ES6), 27 bytes
Mostrar fragmento de código
fuente
05AB1E , 2 bytes
Pruébalo en línea!
fuente
R+
También funciona para 2 bytes.Python 2, 32 bytes
Solución alternativa sin
zip
(35 bytes):Pruébalo en línea!
fuente
Python 2 , 40 bytes
Pruébalo en línea!
La otra respuesta más corta de Python reemplaza una comprensión de lista con
map
. Ojalá hubiera pensado hacer eso más rápido. ; -;fuente
Japt , 7 bytes
Pruébalo en línea! con la
-Q
bandera para formatear la matriz de salida.Explicación
Implícito:
U
= matriz de entradaAsigne la entrada mediante la siguiente función ...
El valor, más el valor en la matriz de entrada en el índice ...
-(index+1)
, que obtiene elementos desde el final de la matriz.fuente
Rubí , 25 bytes
Pruébalo en línea!
fuente
Mathematica, 12 bytes
Pruébalo en línea!
fuente
Python 2 ,
3332 bytes-1 byte gracias a @xnor
Pruébalo en línea!
fuente
l*1
Guarda un byte.l*1
, cualquier elaboraciónl*1
hace una copia de la listal
. Si no hiciéramos una copia,pop()
eliminaríamos elementos de la lista antes de acceder a ellos en el bucle for.Brachylog , 6 bytes
Pruébalo en línea!
fuente
C # (.NET Core) ,
6160 bytes-1 byte gracias a TheLethalCoder
Pruébalo en línea!
El recuento de bytes también incluye:
Para explicación: la función Zip en LINQ toma dos colecciones y ejecuta una función dada para todos los elementos correspondientes, es decir. los dos primeros elementos juntos, los dos segundos elementos, etc.
fuente
Zip
llamada para que no necesite laToArray()
. ¡Buen trabajo!CJam , 7 bytes
Pruébalo en línea!
fuente
""
para[]
, eso es raro. No es tu culpa solo el idioma.[]
.[]
, y[4]
, por lo tanto, está bien.APL (Dyalog) , 3 bytes
Pruébalo en línea!
Explicación
fuente
⌽+⊢
sin entrada⍬
el vector vacío. Sin argumento, imprime el tren por sí mismoJ, 3 bytes
Reverso, suma.
Pruébalo en línea!
fuente
R ,
1716 bytes-1 byte gracias a djhurio
Lee de stdin; devuelve el vector;
numeric(0)
es el vector numérico de longitud cero para la lista vacía.Pruébalo en línea!
fuente
numeric(0)
numeric(0)
en R.rev(l<-scan())+l
, 16 bytes?pryr::f(rev(x)+x)
Clojure,
2017 bytes3 bytes guardados gracias a @MattPutnam
Parece ser bastante competitivo con los idiomas que no son de golf.
Véalo en línea
fuente
rseq
lugar dereverse
.Pyth, 3 bytes
Pruébalo aquí
fuente
sV_
PowerShell , 26 bytes
Pruébalo en línea!
Toma datos como argumentos de línea de comandos.
fuente
C, 49 bytes
fuente
a,n,b
sera,b,n
o algo así?b
no es un parámetro para la función, solo una definición adicional incluida por razones de golf.a
debe ser un puntero a enteros, yn
debe ser cuántos enteros hay en la matriz.PowerShell ,
4032 bytesPruébalo en línea!
Toma datos como argumentos de línea de comandos individuales, lo que está permitido como uno de los formatos de lista nativos para PowerShell. Luego recorre cada elemento (es decir, una forma más corta de recorrer los índices), agregando el elemento que cuenta desde atrás (
-1
indexado) al elemento actual (0
indexado, de ahí el decremento-1
). Esos quedan en la tubería y la salida es implícita.Guardado 8 bytes gracias a @briantist
fuente
Write-Output
sucede, se pone las cosas en stdout un elemento por línea. Por ejemplo, puede ver aquí que, cuando se captura, el objeto es de hecho unarray
tipo.param
y luego reemplazar1..$n
con1..($n=$args)
?Java 8,
61575653 bytes-1 byte y corrección de errores gracias a @Nevay .
-3 bytes gracias a @ OliverGrégoire .
(Era un puerto de (y golfizado por
48 bytes) de la respuesta C # de @jkelm , pero ahora es una solución más corta diferente gracias a @ OliverGrégoire ).Explicación:
Pruébalo aquí
El método modifica la matriz de entrada para guardar bytes, por lo que no es necesario un tipo de retorno.
fuente
a->{for(int i=0,l=a.length;i<l/2;a[i]=a[l+~i]+=a[i++]);}
.1,2,3
(devuelve en4,2,4
lugar de4,4,4
), el bucle debe ejecutarse siempre que2*i<l
noi<l/2
.l-i-1
, pero no se me ocurrió.a->{for(int l=0,r=a.length;l<r;a[l]=a[--r]+=a[l++]);}
.l
yr
tiene sentido para tu implementación, así que también los he usado (y he agregado una explicación).Ohm , 3 bytes
Pruébalo en línea!
fuente
[]
no genera nada, pero ese es solo el lenguaje.En realidad , 4 bytes
Pruébalo en línea!
fuente
anyfix , 3 bytes
La versión en TryItOnline! es una versión desactualizada de anyfix, que contiene algunos errores fatales, como no poder agregar listas debido a errores tipográficos en el código fuente. Use el código en GitHub en su lugar.
fuente
Neim , 2 bytes
Esta es una función que toma la entrada en la parte superior de la pila y las salidas en la parte superior de la pila.
Pruébalo en línea!
fuente
Röda , 22 bytes
Pruébalo en línea!
Esta es una función anónima que toma una matriz y devuelve una secuencia de valores, que el enlace TIO genera en líneas separadas.
Explicación
fuente
JavaScript (ES6),
3433 bytesGuardado un byte gracias a @ETHproductions.
Mostrar fragmento de código
fuente
-i-1
a+~i
.MATL , 3 bytes
Pruébalo en línea!
Extremadamente sencillo.
t
duplica la entradaP
lo voltea (lo invierte) y+
agrega el elemento de dos matrices sabiamente.fuente
PHP, 59 bytes
toma datos de los argumentos de la línea de comandos; salida vacía para entrada vacía
Produce una advertencia en PHP> 7.0. Esta versión no (60 bytes):
fuente