Escreva um programa ou função que utilize uma sequência de linhas simples não vazia. Você pode assumir que ele contém apenas ASCII imprimível, excluindo espaço.
Imprima ou retorne uma forma de losango de arte ASCII semelhante a um limão ou lima feita a partir dos prefixos da sequência.
Suponha que a sequência de entrada tenha n letras. Então, essa forma consiste em 2n - 1 colunas de arte ASCII costuradas, cada uma consistindo em 2n - 1 linhas. Contando de 1, a k- ésima coluna tem f (k) = min (k, 2n - k) caracteres de largura e contém cópias f (k) dos primeiros f (k) caracteres de entrada, centralizados verticalmente, com um único espaço em branco linhas que separam as cópias.
Por exemplo, se a entrada for Lemon
, a saída deve ser:
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
Se a entrada for lime
a saída deve ser:
lime
lim lim
li lime li
l lim lim l
li lime li
lim lim
lime
E o mesmo padrão é seguido para outras entradas:
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
As linhas na saída podem ter espaços à direita e pode haver uma nova linha à direita opcional.
O código mais curto em bytes vence.