Sie erhalten einen String bestehend aus druckbarem ASCII (ohne Zeilenvorschub). Ihre Aufgabe ist es, eine schöne Treppe für mein Schloss zu bauen.
Wie baue ich eine schöne Treppe?
Zunächst sollten Sie alle Drehungen der Zeichenfolge abrufen. Beispielsweise hat der String
abcd
die folgenden Rotationen:abcd, bcda, cdab, dabc
(Jedes Zeichen wird an das Ende verschoben, bis das letzte Zeichen erreicht ist.)Wir legen nun jede Umdrehung übereinander:
abcd bcda cdab dabc
Wir können nicht wirklich auf eine gerade Wand klettern, also müssen wir Treppen bauen. Das bedeutet, dass Sie vor jeder Drehung eine Anzahl von Leerzeichen hinzufügen sollten, die ihrem Index in der Rotationsliste entsprechen:
abcd bcda cdab dabc
Du brauchst auch eine Treppe, die mit der anderen Seite meines Schlosses verbunden ist, also solltest du eine wie unten bauen, jede Umdrehung umkehren und etwas Abstand hinzufügen:
abcd dcba bcda adcb cdab badc dabccbad
Dies ist Code-Golf , daher gewinnt der kürzeste Code in Bytes und es gelten die Standardregeln für das Tag.
Testfälle
Eingabe:,
abcd
Ausgabe:abcd dcba bcda adcb cdab badc dabccbad
Eingabe:,
aaaa
Ausgabe:aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa
Eingabe:,
Code golf
Ausgabe (Beachten Sie die Leerzeichen):Code golf flog edoC ode golfC Cflog edo de golfCo oCflog ed e golfCod doCflog e golfCode edoCflog golfCode edoCflog olfCode g g edoCflo lfCode go og edoCfl fCode gollog edoCf
dab
c. -------Antworten:
05AB1E , 12 Bytes
Code:
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
Erläuterung:
quelle
Gelee , 16 Bytes
Probieren Sie es online!
Natürlich -1 mit Jonathan Allan s‘
ɓ
!quelle
J’ɓ⁹⁶ẋ;"ṙz⁶Zm€0Y
(oderLḶ
fürJ’
)Netzhaut , 47 Bytes
Probieren Sie es online! Erläuterung: In der ersten Stufe wird die linke Treppe erstellt, indem jedes Zeichen berücksichtigt und Leerzeichen entsprechend der aktuellen Position, dann der Rest der Zeichenfolge, dann der Anfang der Zeichenfolge und dann Leerzeichen entsprechend dem Rest der Zeichenfolge erstellt werden. Der Rest des Skripts durchläuft jede gerade erzeugte Zeile. Zuerst wird die Zeile dupliziert, dann werden die Zeichen im Duplikat umgekehrt, dann werden die Zeile und ihr Duplikat verkettet.
quelle
Python 3 , 89 Bytes
Probieren Sie es online!
-1 Byte dank ovs
-1 Byte danke an Lynn
quelle
l-i-1
kann nurl+~i
as~i == -i-1
' '*(l+~i)*2
gleich' '*(l+~i)
, das ist ein Byte kürzer!C (gcc) 126 Bytes
Probieren Sie es online!
quelle
Holzkohle ,
23 2120 BytesProbieren Sie es online!
Kann wahrscheinlich mehr Golf gespielt werden, aber ich poste von der mobilen App. Link zur ausführlichen Version .
quelle
G→↘←Lθθ‖C
.Haskell,
8079 BytesProbieren Sie es online!
Wie es funktioniert
Edit: Danke an @ Ørjan Johansen für ein Byte.
quelle
u#_=u
Speichert ein Byte.unlines
wou#_=u
nicht check und später wechselte ich zum Erstellen eines einzelnen Strings ... Danke!J, 34 Bytes
ungolfed
Probieren Sie es online!
quelle
Pyth , 19 Bytes
Probieren Sie es online!
quelle
Mathematica, 119 Bytes
quelle
PHP, 95 Bytes
Lauf als Pipe mit
-nR
oder versuche es online .Nervenzusammenbruch
quelle
Japt , 22 Bytes
Führende Newline ist Teil des Programms.
Probieren Sie es online!
Führen Sie alle Testfälle aus mit meinem WIP-CodePen aus.
Erläuterung
Implizit:
U
= Eingabezeichenfolge. Erste Zeile ist leer, um nicht zu überschreibenU
.Die zweite Zeile weist implizit die Länge (
l
) vonU
bis zuV
.Dritte Zeile:
quelle
Pyth, 20 Bytes
Probieren Sie es online!
quelle
Javascript (ES6), 118 Byte
Beispielcode-Snippet:
quelle
Python 2 ,
8583 Bytesl+~i
und habe mir geholfen, einen unerwünschten Platz zu findenProbieren Sie es online!
quelle
l-1-i
kann nur seinl+~i
as~i == -i-1
8. ,
173168 BytesCode
Ungolfed-Version mit Kommentaren
Verwendung und Beispiele
Oder klarer
quelle