Ecrivez un programme ou une fonction qui prend une chaîne non vide à une seule ligne. Vous pouvez supposer qu'il ne contient que de l' espace ASCII imprimable .
Imprimez ou renvoyez une forme de losange art ASCII semblable à un citron ou à une lime fabriquée à partir des préfixes de la chaîne.
Supposons que la chaîne d'entrée soit longue de n lettres. Ensuite, une telle forme consiste en 2n - 1 colonnes d’art ASCII cousues ensemble, chacune consistant en 2n - 1 lignes. En partant de 1, la k- ième colonne a une largeur de f (k) = min (k, 2n - k) et contient les copies f (k) des premiers caractères f (k) de l’entrée, centrées verticalement, avec un seul blanc lignes séparant les copies.
Par exemple, si l'entrée est Lemon
, le résultat devrait être:
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
Si l'entrée est lime
la sortie devrait être:
lime
lim lim
li lime li
l lim lim l
li lime li
lim lim
lime
Et le même schéma est suivi pour les autres entrées:
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
Les lignes dans la sortie peuvent avoir des espaces de fin et il peut y avoir une nouvelle ligne de fin optionnelle.
Le code le plus court en octets gagne.