食谱
给定
- 一串字母
S
,和 - 两个正整数
M
,N
,
产生的字母表汤中的字母S
占据的随机位置在矩形碗尺寸的M
× N
,框架由一个非字母,非空格字符来表示碗的边缘。
字母未使用的位置应显示为空格。请参阅下面的示例。
附加规则
- 尺寸
M
×N
指的是内部的碗。包括轮辋在内的尺寸为M+2
×N+2
。 - 每个字符
S
应在碗中一次出现在不同的位置;也就是说,一个字符不能覆盖另一个字符。 S
可能包含重复项。例如,如果S
是字符串'abcc'
,汤必须包含一个a
,一个b
,两个c
(都在不同的位置)。- 输入将满足限制
M >= 1
,N >= 1
,1 <= length(S) <= M*N
。 - 碗的边缘可以是任何非字母,非空格字符,在程序运行和输入值之间保持一致。
- 碗中的字母位置是随机的,因此每次使用相同的输入运行程序时,结果可能会有所不同。
- 给定输入,每个可能的字母位置集应具有非零概率。由于无法从程序的一些实现中进行检查,因此请说明您的代码如何实现此目的。
- 允许在边框周围使用前导或尾随空格。
S
将仅包含大写字母。如果愿意,您可以选择仅采用小写字母。- 输入和输出像往常一样灵活。例如,输出可以是带有换行符的字符串,2D字符数组或行列表。
- 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。
- 以字节为单位的最短代码获胜。
例子
输入显示为S, [M N]
,其中M
是行N
数和列数。该字符#
用于边框。
'O', [1 1]:
###
#O#
###
'HEY', [1 3]:
#####
#YHE#
#####
'HELLO', [4 11]:
#############
# O #
# H #
# LE #
# L #
#############
'ADVNJSGHETILMVXERTYIOJKCVNCSF', [8 12]:
##############
#K V L S #
# A V X H #
#T M C #
# I O N#
# YC #
# G I R SE#
# J F #
#JT D V EN #
##############
'OOOOOOOOOOXXXXX', [13 31]:
#################################
# X #
# O #
# #
# X #
# O #
# X O #
# O #
# X #
# O #
# X #
# O #
# O O O #
# O #
#################################
'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ', [11 41]
###########################################
# JU#
# Q C M G R T U Y H #
# KI E H M YO #
# V BW I JC #
# SV D P B U #
# A F RF J KP E #
# E N TH Z #
# N BM O Q I AS N WX #
# S O K G L P Q #
#Z L T R L A F DD#
# V Y WX C G XZ #
###########################################
|+-
?