Nós parecem não obter cansado de desafios alfabeto-relacionados ...
A receita
Dado
- uma sequência de letras
S
e - dois inteiros positivos
M
,N
,
produza uma sopa de letrinhas com as letras de S
ocupar posições aleatórias em uma tigela retangular de tamanho M
× N
, emoldurada por um caractere não alfabético e sem espaço para representar a borda da tigela.
As posições não usadas por letras devem ser exibidas como espaços. Veja os exemplos abaixo .
Regras adicionais
- O tamanho
M
×N
refere-se ao interior da tigela. O tamanho incluindo o aro éM+2
×N+2
. - Cada personagem de
S
deve aparecer uma vez na tigela, em uma posição diferente ; isto é, um personagem não pode substituir outro. S
pode conter duplicatas . Por exemplo, seS
for a sequência'abcc'
, a sopa deve conter uma
, umb
e doisc
(todos em posições diferentes).- As entradas irão satisfazer as restrições
M >= 1
,N >= 1
,1 <= length(S) <= M*N
. - A borda da tigela pode ser qualquer caractere não alfabético e não espacial , consistente entre as execuções do programa e os valores de entrada.
- As posições das letras na tigela são aleatórias, portanto o resultado pode variar sempre que o programa for executado com as mesmas entradas.
- Dada a entrada, todo conjunto possível de posições de letras deve ter uma probabilidade diferente de zero . Como isso não pode ser verificado em algumas realizações do programa, explique como o seu código cumpre isso.
- Espaço em branco à esquerda ou à direita ao redor da borda são permitidos.
S
conterão apenas letras maiúsculas. Se desejar, você pode escolher apenas letras minúsculas .- Entrada e saída são flexíveis, como de costume. Por exemplo, a saída pode ser uma sequência com novas linhas, uma matriz de caracteres 2D ou uma lista de linhas.
- Programas ou funções são permitidos, em qualquer linguagem de programação . As brechas padrão são proibidas.
- O código mais curto em bytes vence.
Exemplos
As entradas são mostradas como S, [M N]
, onde M
é o número de linhas e o N
número de colunas. O personagem #
é usado para a borda.
'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 #
###########################################
|+-
?