Entfernen Sie bei einer nicht leeren Zeichenfolge das erste und das letzte Zeichen, bis Sie ein oder zwei Zeichen erhalten.
Wenn die Zeichenfolge beispielsweise lautet abcde
, sollte Ihr Programm Folgendes drucken:
abcde
bcd
c
Wenn dies jedoch der abcdef
Fall ist, sollte es bei zwei Zeichen enden:
abcdef
bcde
cd
Nachgestellte Zeilenumbrüche und Leerzeichen am Ende jeder Zeile sind optional. Sie können so viele haben, wie Sie wollen oder keine.
Testfälle
ABCDEFGHIJKLMNOPQRSTUVWXYZ -> ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXY
CDEFGHIJKLMNOPQRSTUVWX
DEFGHIJKLMNOPQRSTUVW
EFGHIJKLMNOPQRSTUV
FGHIJKLMNOPQRSTU
GHIJKLMNOPQRST
HIJKLMNOPQRS
IJKLMNOPQR
JKLMNOPQ
KLMNOP
LMNO
MN
ABCDEFGHIJKLMNOPQRSTUVWXYZ! -> ABCDEFGHIJKLMNOPQRSTUVWXYZ!
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXY
DEFGHIJKLMNOPQRSTUVWX
EFGHIJKLMNOPQRSTUVW
FGHIJKLMNOPQRSTUV
GHIJKLMNOPQRSTU
HIJKLMNOPQRST
IJKLMNOPQRS
JKLMNOPQR
KLMNOPQ
LMNOP
MNO
N
A -> A
AB -> AB
Denken Sie daran, dass dies Code-Golf ist , also gewinnt der Code mit der geringsten Anzahl von Bytes.
Antworten:
V , 10 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
Python, 45 Bytes
Gibt rekursiv die Zeichenfolge sowie eine neue Zeile sowie die führenden Leerzeichen für die nächste Zeile und das rekursive Ergebnis für die verkürzte Zeichenfolge mit einem zusätzlichen Leerzeichen im Präfix aus.
Wenn ein führender Zeilenumbruch zulässig wäre, könnten wir ein Byte speichern:
Vergleichen Sie mit einem Programm (49 Bytes in Python 2):
quelle
ES6 (Javascript),
47,4843 BytesBEARBEITEN: Ersetzter ternärer Operator durch &&, vorangestellte Auffüllzeichenfolge mit der neuen Zeile. Danke @Neil für einen exzellenten Rat!
BEARBEITEN: Enthält den Funktionsnamen für den rekursiven Aufruf, der mit einem wörtlichen Zeilenumbruch um ein Byte entfernt wurde
Golf gespielt
Prüfung
quelle
p
einem Zeilenumbruch und einem Leerzeichen beginnt . Vielleicht könnte dir das auch helfen.s&&
anstelle von verwendens?...:''
.Python 2, 50 Bytes
Einfache rekursive Funktion, die die Zeichenfolge so lange verkürzt, bis sie verschwindet.
Aufruf als f ('string')
Ausgabe
quelle
Perl, 31 Bytes
30 Bytes Code +
-p
Flag.Um es auszuführen:
Erläuterungen : Das
\S
und.$
entspricht dem ersten und letzten Zeichen,(.+)
dem mittleren und( *)
den nachfolgenden Leerzeichen, die jedes Mal hinzugefügt werden, wenn wir ein Zeichen vom Anfang entfernen. Der Regex entfernt also ein Zeichen vom Anfang, eines vom Ende und fügt jedes Mal ein führendes Leerzeichen hinzu.quelle
Brainfuck , 67 Bytes
Dies sollte bei allen Brainfuck-Aromen funktionieren.
Probieren Sie es online aus!
Ungolfed Code:
Es sollten noch einige Bytes vorhanden sein, die hier abgeschnitten werden müssen. Ich habe erst vor kurzem angefangen, Brainfuck zu verwenden, daher ist meine Zeigerbewegung wahrscheinlich sehr ineffizient.
quelle
MATL , 9 Bytes
Dies erzeugt nachgestellte Leerzeichen und Zeilenumbrüche.
Probieren Sie es online aus!
Erläuterung
quelle
Stapel, 92 Bytes
Nimmt Eingaben auf STDIN vor.
quelle
C 73 Bytes
Ungolfed:
Verwendungszweck:
quelle
05AB1E , 8 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online aus!
quelle
Pyke, 10 Bytes
Probieren Sie es hier aus!
quelle
Haskell,
4743 BytesProbieren Sie es auf Ideone . Die Ausgabe ist eine Liste von Zeichenfolgen, die in den Kommentaren der Herausforderung zulässig waren. Führen Sie zum Drucken
(putStr.unlines.f)
statt nur ausf
.Bearbeiten: 4 Bytes gespeichert, nachdem festgestellt wurde, dass nachgestellte Leerzeichen zulässig sind.
quelle
Perl 6 , 42 Bytes
Erweitert:
quelle
GNU sed 24 Bytes
Beinhaltet +2 für
-rn
Druckt, ersetzt das erste Nicht-Leerzeichen durch ein Leerzeichen und löscht das letzte Zeichen, bis sich nichts mehr ändert.
quelle
Netzhaut , 17 Bytes
Probieren Sie es online aus!
quelle
C ++ 14, 117 Bytes
Angenommen, die Eingabe
s
ist astd::string
und gibt den animierten Text zurück.Ungolfed:
Verwendungszweck:
quelle
Vim - 14 Tastenanschläge
Erläuterung:
Vim beendet das Makro automatisch, sobald wir keine Charaktere mehr haben
quelle
Schnapp! - 16 Blöcke
Die Ausgabe ist selbstzentrierend. Das "Warten" ist für Menschen.
quelle
PHP, 91 Bytes
Verwendung: In einer Datei speichern und über den Browser aufrufen:
quelle
Mathematica, 71 Bytes
quelle