Aufgabe
Nehmen Sie bei einer nicht leeren Zeichenfolge aus ASCII-Kleinbuchstaben a
- z
das 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
a
sollte Ihr Programm Folgendes ausgeben:a
Für die Eingabe
ab
sollte Ihr Programm Folgendes ausgeben:bbb bab bbb
Für die Eingabe
codegolf
sollte 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?