Heute bauen wir eine Pyramide aus Buchstaben! Hier ist eine Beispielbuchstabenpyramide für die ersten 5 Buchstaben:
Schreiben Sie die ersten 5 Buchstaben mit einem Leerzeichen zwischen zuerst aufsteigend und dann absteigend.
A B C D E D C B A
Machen Sie dasselbe mit den ersten vier Buchstaben in der oberen Zeile, aber mit zwei zusätzlichen Leerzeichen:
A B C D C B A A B C D E D C B A
Wiederholen Sie den gleichen Schritt, bis die letzte Zeile nur noch 'A' ist.
A A B A A B C B A A B C D C B A A B C D E D C B A
Wiederholen Sie die Schritte zwei und drei, anstatt nach oben zu gehen:
A A B A A B C B A A B C D C B A A B C D E D C B A A B C D C B A A B C B A A B A A
Das gleiche Muster kann auf bis zu 26 Zeichen erweitert werden. Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu schreiben, die eine Ganzzahl als Eingabe verwendet und die entsprechende Buchstabenpyramide erzeugt. Sie können zwischen Groß- und Kleinschreibung wählen. Sie können immer davon ausgehen, dass die Eingabe eine Ganzzahl in sein wird [1, 26]
, und die Ausgabe kann jedes vernünftige Format für eine 2D-Zeichenfolge haben. Zum Beispiel eine Zeichenfolge mit Zeilenumbrüchen, ein Array von Zeichen, das in eine Datei gedruckt wird usw. Jede Zeile kann Leerzeichen enthalten, und Sie können optional eine abschließende Zeile mit Zeilenumbrüchen ausgeben.
Hier sind einige Beispiele für Ein- / Ausgänge:
1:
A
2:
A
A B A
A
3:
A
A B A
A B C B A
A B A
A
5:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
13:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
26:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
Wie immer ist die Code-Golf so Standard Lücken gelten und die kürzeste Antwort in Bytes gewinnt!
quelle
Antworten:
Python,
184 174169 BytesBearbeiten: 5 Bytes dank @ nedla2004 gespeichert
quelle
g
drei Zeilen setzen. 2.) Einerrange
Variablen zuweisen . Sie können beide hier sehen . (Hinweis: Bevordef f(x,y,z):
es ein Leerzeichen gibt, gibt es vor derfor
Schleife einen Tabulator.range
s, die Sie ersetzen können?R((a-i))
inR(a-i)
undR((a-i-1))
in verwandelnR(a-i-1)
, nicht wahr?for
Schleifen innerhalb des Listenverständnisses entfernt werden können.print
.05AB1E , 13 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
MATL ,
2524 BytesProbieren Sie es online!
Längere Alternativen:
1Y20hiZv&+G-t0>*1&!t0*hTe)
(26 Bytes)Zv&+64+G-t64>*l2&Y"tZyP:o*c
(27 Bytes)Erläuterung
quelle
V , 45 Bytes
Probieren Sie es online!
Dies endete damit , dass ich weit weniger Golf gespielt habe als ich gehofft hatte, daher werde ich noch keine Erklärung veröffentlichen. Hoffentlich kann ich es zuerst noch etwas runter schnitzen. Wie immer ist hier ein Hexdump:
quelle
J, 34 Bytes
Nimmt die Zahl als Eingabe und gibt ein 2D-Zeichenfeld zurück.
Erläuterung
Zerlegter Testfall
Lassen Sie uns dies mit Eingabe versuchen
5
.Testfälle
quelle
Jelly , 13 Bytes
TryItOnline!
Wie?
quelle
Pyke, 12 Bytes
Probieren Sie es hier aus!
Deaktivieren Sie Warnungen für die angegebene Ausgabe
quelle
C #,
266263262261245238235232 BytesGolf gespielt:
Ungolfed mit Kommentaren:
Probieren Sie es aus: http://rextester.com/WIL67940
Gibt eine Liste von Zeichenfolgen zurück. Jede Zeichenfolge enthält eine Ausgabezeile.
Ich habe das zum Spaß und zum Training gemacht. Mir ist klar, dass das Gewinnen von Code-Golf mit C # außerhalb der Reichweite liegt.
EDIT1: String-Interpolation in
+
Operator geändert .EDIT2:
c <= 'A' + i
=>c < 'B' + i
EDIT3: Vertauscht
char
mitvar
.EDIT4: Rückgabetyp von
void
nach geändertList
.EDIT5: Entfernen unnötiger Variablen.
EDIT6: Neue Methode zum Trennen von Linienhälften.
EDIT7: @Kaspar Kjeldsen, danke.
quelle
C
124123 BytesDank Mukul Kumar 1 Byte sparen
Momentan kann ich meinen Kopf nicht dazu bringen, die Doppelschleife in eine Einzelschleife umzuwandeln. Ich lasse es für den Moment so.Eigentlich ist das größerAlso lasse ich einfach die verschachtelte Schleife.
Verwendet die Manhattan-Norm , um die Diamantform zu erhalten.
Ungolfed:
quelle
j==2*n
mitj-2*n
und Austausch der? ()
Werte mit:()
WertPython,
158154140139 BytesDies ist mein erster Beitrag, also sei sanft! Ich habe [:: - 1] intensiv genutzt, um Zeichenfolgen umzukehren. Vielleicht gibt es dort eine Optimierung. Kommentare sind willkommen.
EDITS:
Vielen Dank an @Rod für den Verweis auf den hilfreichen Link zum Thema Python-Code-Golf und für die Erinnerung, dass die Buchstaben Leerzeichen zwischen ihnen benötigen. Vielen Dank auch an @wec für die allgemeinen Tipps zum Entfernen von Leerzeichen.
quelle
=
), nach Kommas und vor der öffnenden Klammer in der print-Anweisung entfernen . Der Python-Einzug kann eine beliebige Ebene sein, solange er konsistent ist. Sie können also 3 Zeichen speichern, indem Sie für Ihre Druckanweisung nur ein Leerzeichen anstelle von vier unabhängig machen. Das sind die einfachen Einsparungen, die ich sehen kann.z
nur ein einziges Mal verwenden, brauchen Sie keine Variable zu verwenden, setzen Sie dies*2-1
direkt in diecenter
Funktion. Nur ein Detail, die Ausgabe muss Leerzeichen zwischen den Buchstaben enthalten, ein' '.join
direkt nach dem Druck sollte ausreichen (aber Sie müssen das überarbeitens*2-1
, um den richtigen Wert zu erhalten).range
und[:]
ist0
, so dass Sie es brauchen don explizit zu setzenBrain-Flak, 630 + 3 = 633 Bytes
Dies erfordert die
-A
Flag ausgeführt werdenProbieren Sie es online
Dies ist kein großartiger Golf, aber diese Herausforderung ist in Brain-Flak ziemlich schwierig
quelle
Pyth, 23 Bytes
Probieren Sie es online aus
quelle
TSQL, 261 Bytes
Einzeilige Abfrage - keine Schleife
Leider frisst die Geige die Leerzeichen am Anfang der Ausgabezeilen auf. Leerzeichen sind vorhanden, wenn sie in SQL Server Management Studio ausgeführt werden
Geige
quelle
Ruby,
137 115 10084 BytesDanke an manatwork für die Kommentare.
quelle
0..n-1
→0...n
.n>0?…:""
.Befunge 93 , 175 Bytes
Probieren Sie es online!
Wahrscheinlich nicht sehr gut golfen. Naja. Das war schwer genug mit befunge:
Viel Glück beim Herausfinden, wie es funktioniert! Ich weiß es kaum.
quelle
C # 199 Bytes
Wie immer ist C # keine Golfsprache, aber ich bevorzuge "lesbaren" Code viel mehr als esoterischen Code. Auch ich habe das nur zum Spaß gemacht :)
Hier ist eine ungolfed Version, so dass Sie leicht verstehen können, was ich getan habe:
(Ich denke, das könnte aber viel optimiert werden ..)
quelle
Java, 213 Bytes
Ungolfed:
quelle
Java, 394 Bytes
Ich mache normalerweise C #, aber es ist gut, es zu mischen ...
Golf gespielt:
Ungolfed:
Prüfung:
quelle
R
1009787 Bytes(Update:
scan()
für Eingaben; missbraucht (x-1): 1 == x: 2-1.)Nicht allzu schäbig für eine der Schlüsselwortsprachen (diese Sonderzeichen werden immer besser sein).
quelle
PHP,
122116 BytesGibt es einen kürzeren Weg?
quelle
JavaScript (ES6), 121 Byte
Wobei
\n
das wörtliche Zeilenumbruchzeichen darstellt. Ausgaben in Kleinbuchstaben.quelle
Batch, 269 Bytes
Zeile 2 endet in 25 Feldern; Das heißt, wenn der Alphabetindex negativ wird, bleiben diese Quadrate einfach leer.
quelle