编写一个包含非空单行字符串的程序或函数。您可能会认为它仅包含可打印的ASCII(不包括空格)。
打印或返回类似于由字符串前缀制成的柠檬或酸橙的ASCII艺术菱形形状。
假设输入字符串的长度为n个字母。然后,这样的形状由2n-1列的ASCII艺术拼凑而成,每列由2n-1行组成。从1开始,第k列的宽度为f(k)= min(k,2n-k)个字符,并包含输入的前f(k)个字符的f(k)个副本,垂直居中,单个空格分隔副本的行。
例如,如果输入为Lemon
,则输出应为:
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
如果输入是lime
输出,则应为:
lime
lim lim
li lime li
l lim lim l
li lime li
lim lim
lime
对于其他输入,遵循相同的模式:
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
输出中的行可能有尾随空格,并且可能有一个可选的尾随换行符。
以字节为单位的最短代码获胜。