Fortsetzung meiner Es war nur ein Bug Challenge:
Eingang:
Eine Zeichenfolge, die aus druckbaren ASCII-Zeichen ohne Leerzeichen oder Zeilenumbrüche besteht.
Ausgabe:
Verwandeln Sie die Eingabe zunächst in ein Palindrom, indem Sie die Eingabe zurücksetzen und vor sich selbst hinzufügen, ohne das mittlere Zeichen (dh bei einer Eingabe 1234567890
wird es 0987654321234567890
).
Und dann diesen Text ausgeben:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
(Von der Mitte nach außen in beide Richtungen wird jedes Zeichen durch ein Leerzeichen mehr als in der vorherigen Zeile getrennt.)
Herausforderungsregeln:
- Sie müssen die doppelte Länge der Eingabe minus 3 Zeilen drucken. Bei der Eingabe
1234567890
beträgt die oben angezeigte Ausgabe 17 Zeilen (Länge 10 * 2 - 3). - Die Eingabe enthält nur druckbare ASCII-Zeichen (ohne Leerzeichen, Tabulatorzeichen und Zeilenumbrüche).
- Nachgestellte Leerzeichen sind optional.
- Eine einzelne nachgestellte neue Zeile ist optional.
- (Zusätzliche) führende Leerzeichen oder Zeilenumbrüche sind nicht zulässig.
- Sie können davon ausgehen, dass die Eingabe immer mindestens vier Zeichen lang ist.
- Anders als bei mir war es nur eine Bug- Herausforderung, sowohl die Eingabe- als auch die Ausgabeformate sind flexibel. Sie können das Ergebnis also als String-Array, String-Liste usw. ausgeben.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
Input: 1234567890
Output:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
Input: ABCD
Output:
D C B A B C D
D C B A B C D
DCBABCD
D C B A B C D
D C B A B C D
Input: =>)}]
Output:
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
]})>=>)}]
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
Input: XXxxXX
Output:
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
XXxxXXXxxXX
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
Antworten:
Holzkohle , 14 Bytes
Probieren Sie es online!
AST:
quelle
Japt ,
2221 BytesOnline testen!
Erläuterung
Die ersten 8 Bytes erzeugen den rechten unteren Quadranten des Musters:
An dieser Stelle haben wir eine Reihe von z
["ABCD", "A B C D", "A B C D"]
. Leider dauert es 13 Bytes, um dies zu quadrieren:quelle
05AB1E , 17 Bytes
Probieren Sie es online!
-1 dank kalsowerus .
quelle
.c.∊
mitû.c
û
... danke!JavaScript (ES6) ,
159136129127 ByteProbieren Sie es online! Erklärung unten
Bei der ersten Teilnahme am Codegolf entschuldige ich mich im Voraus für offensichtliche Fehler.
Vielen Dank an Justin Mariner für das Speichern von 23 Bytes! Vielen Dank an Craig Ayre für das Speichern von 11 Bytes und für den Fehlerbericht.
quelle
x
bei -2 statt -1 zu beginnen und zu wechselnx<=l
,++x<=l
damit Sie das entfernenx++
und ein Byte speichern können?lines
es auch mit dem Abstand verwickelt ist, so dass es mehr Bytes kostet, damit alles wieder funktioniert. Aber ich bin mir ziemlich sicher, dass es eine bessere Möglichkeit gibt, den Code zu organisieren und Ihren Vorschlag hinzuzufügen.SOGL V0.12 ,
2218 BytesProbieren Sie es hier aus!
Erläuterung:
quelle
╬-
der Vier-Wege-Befehl palindromize? Ich war gerade hier und wünschte, Japt hätte so etwas ...: P╬
ist viele Dinge╬-
. Aber danke, ich konnte diese Seite aus irgendeinem Grund nicht findenF
für ,∑
wenn es gebraucht wird .Python 3 ,
149 14195 BytesProbieren Sie es online!
Vielen Dank an @KevinCruijssen und @ETHproductions für das Speichern einiger Bytes
Besonderer Dank geht an @notjagan für die Einsparung von 46 Bytes!
quelle
l=len(s);
aufl=len(s)-1;
und dann das Ändern aller beteiligten Wertel
(dhl-1
->l
;-l+2
->-l+1
; usw.) ist 8 Byte kürzer. Probieren Sie es hier aus.-l+2
->2-l
:)center
anstelle derfor
Schleife!PHP,
145131 BytesEs bedurfte einiger Überlegungen, um dieses zusätzliche Byte zu spielen. aber das war es wert.
druckt eine führende Newline. Laufen Sie als Pipe mit
-nR
oder probieren Sie es online aus .Nervenzusammenbruch
Alternativlösung , gleiche Länge:
quelle
APL (Dyalog) , 37 Bytes
Benötigt,
⎕IO←0
was auf vielen Systemen Standard ist.{
…}
Anonyme Funktion, bei der das Argument durch ⍵ dargestellt wird(
…)↑¨¨⊂⍵
Für jede (¨
) der folgenden Zahlen nehmen (↑
) so viele Zeichen aus jedem (¨
) des gesamten (⊂
) Arguments, wie erforderlich mit Leerzeichen aufgefüllt:≢w
die Anzahl der Zeichen im Argumentd←
Speichern Sie das in d⍳
so viele Indexe (0… d - 1)1↓
fall eins (die null)∊¨
ϵ jeweils nlisten (abflachen)↑
Erhöhen Sie den Rang (konvertieren Sie die Liste der Listen in eine Matrix)(m←
…)
Wenden die folgende implizite Funktion m an , definiert als:⊖
das verkehrte Argument⍪
auf1
eine Reihe]↓
heruntergefallen von⊢
das Argument⍉
transponieren(
…)↓
Fallen lassen:2-d
= - ( d - 2), dh d - 2 Zeilen von untenm
m anwenden⍉
transponierenProbieren Sie es online!
quelle
Java (OpenJDK 8) ,
201196 BytesProbieren Sie es online!
Es ist die gleiche Idee wie bei der vorherigen Herausforderung , nur dass der Generatorstring jetzt ein bisschen länger und schwieriger zu handhaben ist.
quelle
Python 3 ,
134124 BytesProbieren Sie es online!
Erster Beitrag zu PPCG nach einer Weile lauern. Suche nach Anregungen / Ratschlägen!
Vielen Dank an @LyricLy und @ Łukasz Rogalski für die Verbesserungen!
quelle
f=
in dem bytecount nicht zählen, es ist in Ordnung, einfach eine anonyme Funktion bereitzustellen.-len(s)+2
nur2-len(s)
ein Byte weniger.Haskell,
177163 BytesDie Funktion
f
ist die Challenge-Funktion und gibt eine Liste von Strings ([String]
) mit zurückunlines
die gleiche visuelle Ausgabe liefern sollte wie die Testfälle (main = putStr $ unlines $ f "test string"
um sie zu kompilieren).Probieren Sie es online!
-14 Bytes dank @nimi
quelle
k
kann alsk n=[1..n]>>" "
undp
als definiert werdenp=(++)=<<reverse.tail
(Sie können diese Definition sogar inline einfügen).Mathematica, 141 Bytes
quelle