Il semble que nous ne nous lassions jamais des défis liés à l'alphabet ...
La recette
Donné
- une chaîne de lettres
S
, et - deux entiers positifs
M
,N
,
produire une soupe alphabétique avec les lettres d' S
occuper des positions aléatoires dans un bol rectangulaire de taille M
× N
, encadrée par un caractère non alphabétique et non spatial pour représenter le bord du bol.
Les positions non utilisées par les lettres doivent être affichées sous forme d'espaces. Voir les exemples ci-dessous .
Règles supplémentaires
- La taille
M
×N
fait référence à l' intérieur du bol. La taille incluant la jante estM+2
×N+2
. - Chaque personnage de
S
devrait apparaître une fois dans le bol, dans une position différente ; c'est-à-dire qu'un caractère ne peut pas en écraser un autre. S
peut contenir des doublons . Par exemple, siS
est la chaîne'abcc'
, la soupe doit contenir una
, unb
et deuxc
(tous dans des positions différentes).- Les entrées satisferont les restrictions
M >= 1
,N >= 1
,1 <= length(S) <= M*N
. - Le bord du bol peut être n'importe quel caractère non alphabétique, sans espace , cohérent entre les exécutions de programme et les valeurs d'entrée.
- Les positions des lettres dans le bol sont aléatoires, le résultat peut donc différer à chaque exécution du programme avec les mêmes entrées.
- Compte tenu de l'entrée, chaque ensemble possible de positions de lettres doit avoir une probabilité non nulle . Comme cela ne peut pas être vérifié à partir de quelques réalisations du programme, veuillez expliquer comment votre code remplit cela.
- Les espaces blancs avant ou arrière autour de la jante sont autorisés.
S
ne contiendra que des lettres majuscules . Si vous le souhaitez, vous pouvez choisir de ne prendre que des lettres minuscules .- L'entrée et la sortie sont flexibles comme d'habitude. Par exemple, la sortie peut être une chaîne avec des retours à la ligne, un tableau de caractères 2D ou une liste de lignes.
- Les programmes ou fonctions sont autorisés, dans n'importe quel langage de programmation . Les failles standard sont interdites.
- Le code le plus court en octets gagne.
Exemples
Les entrées sont représentées par S, [M N]
, où M
est le nombre de lignes et le N
nombre de colonnes. Le caractère #
est utilisé pour la jante.
'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 #
###########################################
|+-
?