Ihr Programm sollte ein Array als Eingabe nehmen.
Das Array:
- Wird immer 1 dimensional sein
- Enthält nur ganze Zahlen
- Kann leer sein
Das Programm sollte das Array umkehren und dann die Elemente zum Original addieren, zum Beispiel:
Eingang: [1, 2, 3]
Original: [1, 2, 3]
Rückgängig gemacht: [3, 2, 1]
[1, 2, 3]
+ + +
[3, 2, 1]
[1+3, 2+2, 3+1]
Ausgabe: [4, 4, 4]
Testfälle:
#In #Out
[8, 92], [100, 100]
[1, 2, 3], [4, 4, 4]
[5, 24, 85, 6], [11, 109, 109, 11]
[], []
[999], [1998]
Das ist Code-Golf , der kürzeste Code (in Bytes) gewinnt!
code-golf
array-manipulation
Noah Cristino
quelle
quelle
Antworten:
Haskell , 20 Bytes
5 Bytes sparen, indem Sie zu einem von nimi vorgeschlagenen freien Punkt wechseln
Probieren Sie es online!
quelle
zipWith(+)=<<reverse
.main
zum Kompilieren.=<<
aus der Funktion Monade , die definiert ist als:(=<<) f g x = f (g x) x
. Hier im Infix geschrieben:(zipWith(+) =<< reverse) x
->zipWith(+) (reverse x) x
.Gelee , 2 Bytes
Probieren Sie es online!
oder
Probieren Sie es online! (danke @Mr. Xcoder für das zweite Programm)
Erklärung, obwohl es ziemlich selbsterklärend ist
Bei einem leeren Array
[]
wird nichts ausgegeben. Das ist richtig. Jellys Darstellung einer leeren Liste ist einfach nichts. Beachten Sie, dass Jellys Darstellung einer Liste mit einem einzelnen Element nur das Element selbst ist. Hängen SieŒṘ
den Code an, um die Python-interne Darstellung der Ausgabe zu sehen.quelle
[9]
, gibt es 18 statt[18]
und 2) wenn es getestet wird[]
, gibt es nichts aus.+Ṛ
funktioniert auch.JavaScript (ES6), 27 Byte
Code-Snippet anzeigen
quelle
05AB1E , 2 Bytes
Probieren Sie es online!
quelle
R+
funktioniert auch für 2 Bytes.Python 2, 32 Bytes
Alternative Lösung ohne
zip
(35 Bytes):Probieren Sie es online!
quelle
Python 2 , 40 Bytes
Probieren Sie es online!
Die andere, kürzere Python-Antwort ersetzt ein Listenverständnis durch
map
. Ich wünschte, ich hätte gedacht, das schneller zu machen. ; -;quelle
Japt , 7 Bytes
Probieren Sie es online! mit dem
-Q
Flag, um das Ausgabearray zu formatieren.Erläuterung
Implizit:
U
= EingabearrayOrdnen Sie die Eingabe mit der folgenden Funktion zu ...
Der Wert plus der Wert im Eingabearray am Index ...
-(index+1)
, das Elemente vom Ende des Arrays erhält.quelle
Ruby , 25 Bytes
Probieren Sie es online!
quelle
Mathematica, 12 Bytes
Probieren Sie es online!
quelle
Python 2 ,
3332 Bytes-1 Byte dank @xnor
Probieren Sie es online!
quelle
l*1
Speichert ein Byte.l*1
l*1
eine Kopie der Listel
. Wenn wir keine Kopiepop()
erstellen würden , würden wir Elemente aus der Liste löschen, bevor auf sie in der for-Schleife zugegriffen wurde.Brachylog , 6 Bytes
Probieren Sie es online!
quelle
C # (.NET Core) ,
61 -60 Byte-1 Byte dank TheLethalCoder
Probieren Sie es online!
Die Byteanzahl umfasst auch:
Zur Erklärung - Die Zip-Funktion in LINQ verwendet zwei Sammlungen und führt die angegebene Funktion für alle entsprechenden Elemente aus, d. H. beide ersten Elemente zusammen, beide zweiten Elemente usw.
quelle
Zip
Anruf zurückgeben, so dass Sie das nicht benötigenToArray()
. Gute Arbeit!CJam , 7 Bytes
Probieren Sie es online!
quelle
""
für[]
, das ist komisch. Nicht deine Schuld, nur die Sprache.[]
.[]
, und[4]
daher ist das in Ordnung.APL (Dyalog) , 3 Bytes
Probieren Sie es online!
Erläuterung
quelle
⌽+⊢
ohne Eingabe⍬
dem leeren Vektor angegeben. Ohne Argument druckt es den Zug von selbstJ, 3 Bytes
Umgekehrt, Summe.
Probieren Sie es online!
quelle
R ,
1716 Bytes-1 byte dank djhurio
Liest von stdin; gibt den Vektor zurück;
numeric(0)
ist der numerische Vektor mit der Länge Null für die leere Liste.Probieren Sie es online!
quelle
numeric(0)
numeric(0)
in R. dargestelltrev(l<-scan())+l
16 Bytes?pryr::f(rev(x)+x)
Clojure,
2017 Bytes3 Bytes gespart dank @MattPutnam
Scheint ziemlich konkurrenzfähig zu sein mit nicht-golfenden Sprachen.
Sehen Sie es online
quelle
rseq
anstelle vonreverse
.Pyth, 3 Bytes
Probieren Sie es hier aus.
quelle
sV_
PowerShell , 26 Byte
Probieren Sie es online!
Übernimmt Eingaben als Befehlszeilenargumente.
quelle
C 49 Bytes
quelle
a,n,b
seina,b,n
oder so?b
handelt sich nicht um einen Parameter für die Funktion, sondern nur um eine zusätzliche Definition, die aus Golfgründen eingefügt wurde.a
muss ein Zeiger auf Ganzzahlen sein undn
muss die Anzahl der Ganzzahlen im Array angeben.PowerShell ,
4032 BytesProbieren Sie es online!
Nimmt Eingaben als einzelne Befehlszeilenargumente an, was als eines der systemeigenen Listenformate für PowerShell zulässig ist. Durchlaufen Sie dann jedes Element (dh eine kürzere Methode zum Durchlaufen der Indizes) und addieren Sie die Anzahl der Elemente von hinten (
-1
indexiert) zum aktuellen Element (0
indexiert, daher die Dekrementierung-1
). Diese verbleiben in der Pipeline und die Ausgabe ist implizit.8 Bytes dank @briantist eingespart
quelle
Write-Output
passiert, werden die Dinge auf stdout ein Element pro Zeile gesetzt. Sie können hier beispielsweise sehen, dass das Objekt beim Erfassen tatsächlich einarray
Typ ist.param
und ersetzen Sie dann1..$n
mit1..($n=$args)
?Java 8,
61575653 Bytes-1 Byte und Bugfix dank @Nevay .
-3 Bytes dank @ OliverGrégoire .
(Es war ein Port von @jkelm 's C # -Antwort (und wurde mit
4 bis8 Bytes belegt) , aber jetzt ist es dank @ OliverGrégoire eine andere, kürzere Lösung .)Erläuterung:
Probieren Sie es hier aus.
Die Methode ändert das Eingabearray, um Bytes zu speichern, sodass kein Rückgabetyp erforderlich ist.
quelle
a->{for(int i=0,l=a.length;i<l/2;a[i]=a[l+~i]+=a[i++]);}
.1,2,3
(return4,2,4
statt4,4,4
) fehlschlägt , muss die Schleife so lange laufen2*i<l
, nichti<l/2
.l-i-1
, konnte mir aber nichts einfallen lassen.a->{for(int l=0,r=a.length;l<r;a[l]=a[--r]+=a[l++]);}
.l
undr
macht Sinn für Ihre Implementierung, also habe ich auch diese verwendet (und eine Erklärung hinzugefügt).Ohm , 3 Bytes
Probieren Sie es online!
quelle
[]
es gibt nichts aus, aber das ist nur die Sprache.Eigentlich 4 Bytes
Probieren Sie es online!
quelle
Anyfix , 3 Bytes
Die Version auf TryItOnline! ist eine veraltete Version von anyfix, die einige schwerwiegende Fehler enthält, z. B. das Hinzufügen von Listen aufgrund von Tippfehlern im Quellcode. Verwenden Sie stattdessen den Code auf GitHub.
quelle
Neim , 2 Bytes
Dies ist eine Funktion, die Eingaben oben im Stapel und Ausgaben oben im Stapel akzeptiert.
Probieren Sie es online!
quelle
Röda , 22 Bytes
Probieren Sie es online!
Dies ist eine anonyme Funktion, die ein Array aufnimmt und einen Strom von Werten zurückgibt, die der TIO-Link getrennt über Zeilenumbrüche ausgibt.
Erläuterung
quelle
JavaScript (ES6),
3433 BytesDank @ETHproductions ein Byte gespeichert.
Code-Snippet anzeigen
quelle
-i-1
an+~i
.MATL , 3 Bytes
Probieren Sie es online!
Sehr einfach.
t
dupliziert die Eingabe.P
Kehrt es um und+
fügt die beiden Arrays elementweise hinzu.quelle
PHP, 59 Bytes
Nimmt Eingaben von Befehlszeilenargumenten entgegen. leere Ausgabe für leere Eingabe
Gibt eine Warnung in PHP> 7.0 aus. Diese Version enthält nicht (60 Bytes):
quelle