Schreiben Sie ein Programm oder eine Funktion, die eine nicht leere einzeilige Zeichenfolge enthält. Sie können davon ausgehen, dass es nur druckbares ASCII ohne Leerzeichen enthält.
Drucken Sie oder geben Sie eine ASCII-Kunst-Raute zurück, die einer Zitrone oder einer Limette ähnlich ist, die von den Präfixen der Schnur gebildet wird.
Angenommen, die Eingabezeichenfolge besteht aus n Buchstaben. Dann besteht eine solche Form aus 2n - 1 zusammengenähten ASCII - Kunstspalten, die jeweils aus 2n - 1 Zeilen bestehen. Ab 1 gerechnet, ist die k- te Spalte f (k) = min (k, 2n - k) Zeichen breit und enthält f (k) Kopien der ersten f (k) Zeichen der Eingabe, vertikal zentriert, mit einem einzelnen Leerzeichen Zeilen, die die Kopien trennen.
Wenn die Eingabe beispielsweise lautet Lemon
, sollte die Ausgabe wie folgt lauten:
Lemon
Lemo Lemo
Lem Lemon Lem
Le Lemo Lemo Le
L Lem Lemon Lem L
Le Lemo Lemo Le
Lem Lemon Lem
Lemo Lemo
Lemon
Wenn der Eingang lime
der Ausgang ist, sollte sein:
lime
lim lim
li lime li
l lim lim l
li lime li
lim lim
lime
Und das gleiche Muster wird für andere Eingaben befolgt:
a
a
Be
Be
B B
Be
/\
/\
/ /
/\
cat
cat
ca ca
c cat c
ca ca
cat
|||
|||
|| ||
| ||| |
|| ||
|||
.__.
.__.
.__ .__
._ .__. ._
. .__ .__ .
._ .__. ._
.__ .__
.__.
$tring
$tring
$trin $trin
$tri $tring $tri
$tr $trin $trin $tr
$t $tri $tring $tri $t
$ $tr $trin $trin $tr $
$t $tri $tring $tri $t
$tr $trin $trin $tr
$tri $tring $tri
$trin $trin
$tring
Zeilen in der Ausgabe können abschließende Leerzeichen enthalten, und es kann eine optionale abschließende neue Zeile geben.
Der kürzeste Code in Bytes gewinnt.