任务
给定一个非空的小写ASCII字母字符串a
- z
,请使用第一个字符,并:
- 用第二个字符的副本方块围住它,
- 用第三个角色的副本菱形包围它,
- 用第四个字符的副本方块围住…
…在正方形和菱形边框之间交替,直到字符串结尾。边框之间的空白应由ASCII空格()表示。
要添加正方形边框,请在整个当前“工作数组”周围精确绘制一个正方形:
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
要添加菱形边框,请绘制居中的菱形形状,该形状以对角线而不是正交的方式接触最外面的正方形:
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
您的程序必须输出最终数组。
- 每行可以包含任意数量的尾随空格。
- 您可以输出代表行的字符串列表,也可以输出一个单独的以换行符分隔的字符串,并带有可选的尾随换行符。
- 前导/尾随的空白行是不允许的。
- 也不允许前导空格。
这是代码高尔夫球。以字节为单位的最短代码获胜。
测试用例
上述实施例是预期的输出,用于cat
,cats
,meow
,和meows
,在读取顺序。其他一些值得处理的情况:
对于输入
a
,您的程序应输出:a
对于输入
ab
,您的程序应输出:bbb bab bbb
对于输入
codegolf
,您的程序应输出: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
参考实施
我写了一些Julia代码,程序的输出应该匹配(至少在视觉上)。在线尝试!
\r\n
)两个字节,而不是一个(\n
)?