Nós parecem não obter cansado de desafios alfabeto-relacionados ...
A receita
Dado
- uma sequência de letras
Se - dois inteiros positivos
M,N,
produza uma sopa de letrinhas com as letras de Socupar 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×Nrefere-se ao interior da tigela. O tamanho incluindo o aro éM+2×N+2. - Cada personagem de
Sdeve aparecer uma vez na tigela, em uma posição diferente ; isto é, um personagem não pode substituir outro. Spode conter duplicatas . Por exemplo, seSfor a sequência'abcc', a sopa deve conter uma, umbe 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.
Sconterã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 Nnú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 #
###########################################
|+-?