Aufgabe
Nehmen Sie bei einer nicht leeren Zeichenfolge aus ASCII-Kleinbuchstaben a- zdas erste Zeichen und:
- Umgeben Sie es mit einem Quadrat von Kopien des zweiten Zeichens,
- Umgeben Sie das mit einem Diamanten von Kopien des dritten Zeichens,
- Umgeben Sie das mit einem Quadrat mit Kopien des vierten Zeichens…
… Abwechselnd quadratische und rautenförmige Ränder bis zum Ende der Saite. Leerzeichen zwischen den Rändern sollten durch ASCII-Leerzeichen ( ) dargestellt werden.
Zeichnen Sie zum Hinzufügen eines quadratischen Rahmens ein Quadrat genau um das gesamte aktuelle "Arbeitsarray":
sssssssssss
t s t s
t t s t t s
t t s t t s
t aaa t s t aaa t s
t aca t => st aca ts
t aaa t s t aaa t s
t t s t t s
t t s t t s
t s t s
sssssssssss
Um einen Diamantrand hinzuzufügen , zeichnen Sie eine zentrierte Diamantform, die das äußerste Quadrat diagonal , aber nicht orthogonal berührt :
s
s s
s s
s s
s s
s s
s s
wwwwwwwwwww s wwwwwwwwwww s
w o w s w o w s
w o o w s w o o w s
w o o w s w o o w s
w o eee o w s w o eee o w s
wo eme ow => s wo eme ow s
w o eee o w s w o eee o w s
w o o w s w o o w s
w o o w s w o o w s
w o w s w o w s
wwwwwwwwwww s wwwwwwwwwww s
s s
s s
s s
s s
s s
s s
s
Ihr Programm muss das endgültige Array ausgeben.
- Jede Zeile darf beliebig viele nachgestellte Leerzeichen enthalten.
- Sie können eine Liste von Zeichenfolgen ausgeben, die Zeilen darstellen, oder eine einzelne durch Zeilenumbrüche getrennte Zeichenfolge mit einer optionalen nachgestellten Zeile.
- Führende / nachfolgende Leerzeilen sind nicht zulässig.
- Führende Spalten mit Leerzeichen sind ebenfalls nicht zulässig.
Das ist Code-Golf . Der kürzeste Code in Bytes gewinnt.
Testfälle
Die obigen Beispiele sind erwartete Ausgänge für cat, cats, meow, und meows, um beim Lesen. Einige andere Fälle, die es wert sind, behandelt zu werden:
Für die Eingabe
asollte Ihr Programm Folgendes ausgeben:aFür die Eingabe
absollte Ihr Programm Folgendes ausgeben:bbb bab bbbFür die Eingabe
codegolfsollte Ihr Programm Folgendes ausgeben:fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l ooooooooooooooooooooooooooo l f f l o g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g eeeeeeeeeee g o l f f l o g e d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d ooo d e g o l f fl og ed oco de go lf f l o g e d ooo d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d e g o l f f l o g eeeeeeeeeee g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g o l f f l ooooooooooooooooooooooooooo l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l f fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Referenzimplementierung
Ich habe Julia-Code geschrieben, mit dem die Ausgabe Ihres Programms übereinstimmen sollte (zumindest visuell). Probieren Sie es online!
\r\n) anstelle von einem (\n) zählen?