Sembra che non ci stanchiamo mai delle sfide legate all'alfabeto ...
La ricetta
Dato
- una stringa di lettere
S
e - due interi positivi
M
,N
,
produrre una zuppa di alfabeto con le lettere di S
occupare posizioni casuali in una ciotola rettangolare di dimensioni M
× N
, incorniciata da un carattere non alfabetico, non spaziale per rappresentare il bordo della ciotola.
Le posizioni non utilizzate dalle lettere devono essere visualizzate come spazi. Vedi gli esempi di seguito .
Regole Adizionali
- La dimensione
M
× siN
riferisce all'interno della ciotola. La dimensione compreso il bordo èM+2
×N+2
. - Ogni personaggio di
S
dovrebbe apparire una volta nella ciotola, in una posizione diversa ; cioè un personaggio non può sovrascriverne un altro. S
può contenere duplicati . Ad esempio, seS
è la stringa'abcc'
, la zuppa deve contenere unoa
, unob
e duec
(tutti in posizioni diverse).- Gli ingressi in grado di soddisfare le restrizioni
M >= 1
,N >= 1
,1 <= length(S) <= M*N
. - Il bordo della ciotola può essere qualsiasi carattere non alfabetico, non spaziale , coerente tra le esecuzioni del programma e i valori di input.
- Le posizioni delle lettere nella ciotola sono casuali, quindi il risultato può variare ogni volta che il programma viene eseguito con gli stessi input.
- Dato l'input, ogni possibile insieme di posizioni delle lettere dovrebbe avere una probabilità diversa da zero . Dal momento che questo non può essere verificato da alcune realizzazioni del programma, si prega di spiegare come il codice soddisfa questo.
- Sono ammessi spazi bianchi iniziali o finali attorno al bordo.
S
conterrà solo lettere maiuscole . Se lo desideri, puoi scegliere di prendere solo lettere minuscole .- Ingresso e uscita sono flessibili come al solito. Ad esempio, l'output può essere una stringa con newline, una matrice di caratteri 2D o un elenco di righe.
- Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
- Vince il codice più breve in byte.
Esempi
Gli input sono mostrati come S, [M N]
, dove M
è il numero di righe e il N
numero di colonne. Il personaggio #
è usato per il bordo.
'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 #
###########################################
|+-
?