Depalindromieren Sie ein Palindrom, das gemäß dieser Herausforderung erzeugt wurde.
Testfälle
abcdedcba -> abcde
johncenanecnhoj -> johncena
ppapapp -> ppap
codegolflogedoc -> codegolf
Da es sich um eine Depalindromierung handelt, kann Ihr Code kein Palindrom sein .
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit den wenigsten Bytes.
code-golf
restricted-source
palindrome
Oliver Ni
quelle
quelle
Antworten:
Julia,
21-15BytesProbieren Sie es online! (zusätzlicher Code für die Druckausgabe)
quelle
end/2
ist coole Funktion05AB1E , 3 Bytes
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
Python 2, 23 Bytes
Ich kann auf meinem Handy nicht testen, aber das sollte funktionieren:
quelle
apt-get install python2
apt-get
auf Ihrem Telefon finden können, ist es wahrscheinlich kein normales Telefon.Fuzzy Octo Guacamole, 4 Bytes
Ich habe eine Weile nach einer Sprache gesucht, in der diese Herausforderung kurz ist, und mir wurde klar, dass ich dumm war, und meine eigene Sprache hat das getan.
quelle
05AB1E, 5 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Cheddar,
2218 BytesSo einfach, ich glaube nicht, dass es einer Erklärung bedarf, aber ich werde eine hinzufügen, wenn ich will.
Probieren Sie es online aus
quelle
Pyth - 4 Bytes
Test Suite .
quelle
JavaScript (ES6),
32 2625 Byte1 Byte gespart dank Neil:
Code-Snippet anzeigen
Bisherige Lösungen
26 Bytes dank Downgoat:
32 Bytes:
quelle
s=>s.slice(0,s.length/2+1)
da die Länge immer ungerade sein wirds=>s.slice(0,s.length/2+.5)
auch für gerade Länge funktionieren würde.-s.length/2
Funktioniert sowohl für ungerade als auch für gerade Längen.WinDbg,
8771 Bytes-16 Bytes, indem Sie nicht NULL einfügen, sondern length an übergeben
da
Die Eingabe erfolgt über eine Adresse im Pseudo-Register
$t0
. Zum Beispiel:Dies funktioniert, indem das rechte Zeichen des mittleren Zeichens (oder das rechte Zeichen des mittleren Zeichens, wenn die Zeichenfolge gerade Länge hat) durch eine Null ersetzt und die Zeichenfolge dann von der ursprünglichen Anfangsspeicheradresse gedruckt wird.
Ausgabe:
quelle
Haskell, 27 Bytes
Pointfree-Version von
Das sind auch 27 Bytes.
quelle
MATL ,
76 BytesProbieren Sie es online!
Erläuterung
quelle
end
und Doppelpunkte zwischen den Array-Elementen sind implizitGelee , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
V , 12 Bytes
Zwei völlig unterschiedliche Lösungen, beide 12 Bytes.
Probieren Sie es online!
Probieren Sie es online!
quelle
Brachylog , 4 Bytes
Probieren Sie es online!
Erläuterung
Wenn die Eingabe eine ungerade Länge hat, ist die von erzeugte zweite Hälfte
@2
die längste, die wir zurückgeben sollten (nachdem wir sie umgekehrt haben).quelle
Dyalog APL , 9 Bytes
⊢
das Argument↑⍨
abgeschnitten bei2÷⍨
die Hälfte von1+
eins plus≢
die LängeTryAPL online!
quelle
Perl, 15 Bytes
Beinhaltet +2 für
-lp
Geben Sie die Eingabezeichenfolge für STDIN ein:
depal.pl
:Das
-l
wird nicht wirklich benötigt, wenn Sie das Palindrom ohne letzten Zeilenumbruch eingeben, aber ich habe es hinzugefügt, um es den anderen Perl-Lösungen, die es verwenden, gerecht zu werden.quelle
Java 7, 57 Bytes
quelle
}
(also 57 Bytes).TI-Basic, 14 Bytes
Standardfunktion. Gibt einen String von Index 1 bis Index zurück (Länge / 2 + 1/2).
quelle
GameMaker-Sprache, 59 Byte
quelle
PHP, 40 Bytes
strlen($a)/2
wird auf int umgewandelt, wobei die Eingabe immer eine ungerade Länge hat, was zum+1
Aufrunden ausreicht.42 Bytes für jede Länge:
für unbekannte Länge
(1+strlen)/2
wird auf int geworfen und aufgerundetstrlen/2
.quelle
Dip, 8 Bytes
Erläuterung:
Dies könnte wahrscheinlich erheblich verbessert werden.
quelle
Perl, 23 + 2 (
-pl
Flag) =2825 BytesUngolfed:
Vielen Dank an @ardnew.
quelle
length()
mity|||c
Befunge ,
2422 BytesProbieren Sie es online!
Befunge hat keinen String- oder Array-Typ, daher wird das Ganze zeichenweise auf dem Stack ausgeführt. Die erste Schleife (in der obersten Zeile) zählt die Anzahl der gelesenen Zeichen (das Vertauschen mit weniger als 2 Elementen im Stapel ergibt eine anfängliche 0). Die zweite Zeile (in der mittleren Zeile) druckt Zeichen, während der Countdown doppelt so schnell erfolgt. Infolgedessen wird nur die letzte Hälfte der Eingabe gedruckt, LIFO also in der richtigen Reihenfolge.
Vielen Dank an Brian Gradin für eine bessere Version der ersten Runde.
quelle
Perl, 14 + 3 (
-lF
Flag) =1917 BytesFür 5.20.0+:
Für 5.10.0+ (19 Bytes):
Ungolfed:
Vielen Dank an @simbabque.
quelle
-n
und-a
weil-F
dies implizit der Fall ist.Brainfuck, 20 Bytes
Probieren Sie es online aus.
Dies erspart ein Byte gegenüber dem einfacheren Ansatz, die Eingabe vor dem Starten der Hauptschleife zu verbrauchen:
quelle
Pyth ,
87 Bytes1 mit Dank an @Steven H gespeichert
Nicht die kürzeste Pyth-Antwort (um die Hälfte), aber ich bemühe mich, die Sprache zu lernen, und dies ist mein erster Beitrag, der sie verwendet. Gepostet so viel für Kommentare und Feedback wie nichts. Es ist auch das erste Pyth-Programm, mit dem ich tatsächlich arbeiten muss :)
Jetzt muss ich nur noch herausfinden, wie die 4-Byte-Antwort von @Maltysen funktioniert :-)
quelle
c
die EingabeQ
in2
Teile und nimmt das erste Stück mith
(das dank der Implementierung von chop auch den mittleren Buchstaben erfasst ). Wie für den Code, Sie ersetzen könnten+1
mith
, Zahlen im internen für die Erhöhung.h
Hinweis @Steven H. Es gibt so viele eingebaute Funktionen, dass es wohl einige Zeit dauert, sie alle zu finden :)Eigentlich 5 Bytes
Probieren Sie es online!
-1 Byte dank Sherlock9
Erläuterung:
quelle
;l½K@H
C
31-30BytesDank Cyoce 1 Byte sparen.
Verwendungszweck:
quelle
char* c
Python 2, 23 Bytes
quelle
MATLAB / Octave,
20191816 Bytes1 Byte weniger beim Ausleihen einer Idee aus der Antwort von Easterly Irk (
1
anstelle von.5
)2 Byte weniger dank @StewieGriffin (unnötige Klammern)
Probieren Sie es bei Ideone .
quelle