Sie müssen ein Programm oder eine Funktion schreiben, die eine "treppenförmige" Zeichenfolge erstellt. Hier ist, wie Sie eine Zeichenfolge "treppen":
Für jedes Zeichen in der Zeichenfolge:
Wenn das Zeichen ein Vokal in Groß- oder Kleinbuchstaben ohne 'y' ist, geben Sie es aus, und verschieben Sie den Rest der Zeichenfolge in einer Spalte nach oben.
Wenn das Zeichen ein Leerzeichen oder ein Tabulator ist, geben Sie es aus und verschieben Sie den Rest der Zeichenfolge in einer Spalte nach unten .
Wenn das Zeichen keines ist, wird es normal ausgegeben.
IO kann in jedem vernünftigen Format vorliegen. Die Eingabe enthält keine Zeilenumbrüche. Wenn Sie möchten, können Sie nachfolgende Leerzeichen entfernen.
Wenn Sie die Zeichenfolge zurückgeben möchten, anstatt sie zu drucken, fügen Sie bitte auch ein kurzes Programm hinzu, das Ihre Zeichenfolge druckt, damit sie visualisiert werden kann. Dies ist nicht obligatorisch und wird auch nicht für Ihre Byteanzahl verwendet. Dies ist nur eine Annehmlichkeit für Benutzer, die Golf oder Esolangs (wie ich) nicht verstehen, um die Ausgabe zu überprüfen oder mit dem Code zu basteln.
Beispiel IO:
Ausgabe für "bcdef ghijkl":
f jkl
bcde ghi
Ausgabe für "Programmieren von Rätseln und Code-Golf":
lf
-Go
s nd de
ng zzle A Co
mmi Pu
gra
Pro
Ausgabe für "Abcdefghijklmnopqrstuvwxyz":
vwxyz
pqrstu
jklmno
fghi
bcde
A
Wie üblich ist dies Codegolf, daher gewinnt die kürzeste Antwort in Bytes.
Antworten:
MATL ,
3837 BytesProbieren Sie es online!
Erläuterung
Für jedes Zeichen berechnet der Code seine vertikale Position, gemessen von oben (0 ist die höchste). Anschließend wird die transponierte Ausgabezeichenfolge erstellt: Jedes Zeichen befindet sich in einer Zeile mit so vielen führenden Leerzeichen, wie die vertikale Position angibt. Dann werden alle Zeilen zu einem 2D-Zeichen-Array zusammengefügt, das schließlich transponiert und angezeigt wird.
quelle
Pyth, 63 Bytes
Die Leerzeichen in der Mitte sind eigentlich ein einzelnes Tabulatorzeichen, aber StackExchange gibt es als vier Leerzeichen wieder.
Probieren Sie es online!
quelle
Python 2,
141137 Bytesquelle
JavaScript (Firefox 30-57), 151 Byte
Wobei
\n
das wörtliche Zeilenumbruchzeichen darstellt.quelle
/n
C 180 Bytes
Ungolfed:
quelle
Perl, 110 Bytes (108 Bytes Skript + 2 Bytes Flags)
Laufen Sie mit
perl -nl script.pl
, die Eingabe ist auf stdin, die Ausgabe ist auf stdout.Deobfuscated
Ich habe die Variablen sinnvoller umbenannt, den Code gemacht
use strict
unduse warnings
Kompatibilität verbessert und vieles explizit gemacht, was Magic Perl automatisch macht.Dies wird nur ausgeführt als
perl script.pl
, weil es die Auswirkungen der-nl
Flags innerhalb des Skripts repliziert .quelle
JavaScript (ES6), 133
Weniger golfen
Prüfung
quelle
Haskell (innerhalb des ANSI-Terminals), 75 Byte
Anwendungsbeispiel:
putStr $ ("\27[2J"++).(h=<<) $ "bcdef ghijkl"
Dies verwendet ANSI-Escape-Codes, um den Cursor nach oben und unten zu bewegen.
quelle
C
173160156155 BytesEdit: Ausgeliehene Idee, mit strchr von @mIllIbyte 13 Bytes zu entfernen
Edit2: Min / Max-Vergleiche wurden optimiert, -4 Bytes
Edit3: c kann einen beliebigen Wert haben, der mit -> into main (c) beginnt, stattdessen -1 Byte
Edit4: Ungolf / Erklärung hinzugefügt
Ungolfed und erklärte:
quelle