Wydaje się, że nigdy nie mamy dość wyzwań związanych z alfabetem ...
Przepis
Dany
- ciąg liter
S
i - dwie dodatnie liczby całkowite
M
,N
,
utwórz zupę alfabetyczną z literami S
zajmującymi losowe pozycje w prostokątnej misce o rozmiarze M
× N
, otoczonej nie alfabetycznym, spacji, która reprezentuje brzeg miski.
Pozycje nie używane przez litery powinny być wyświetlane jako spacje. Zobacz przykłady poniżej .
Zasady dodatkowe
- Rozmiar
M
×N
odnosi się do wnętrza miski. Rozmiar wraz z obręczą wynosiM+2
×N+2
. - Każda postać z
S
powinna pojawić się raz w misce, w innej pozycji ; to znaczy, jedna postać nie może zastąpić innej. S
może zawierać duplikaty . Na przykład, jeśliS
jest to sznurek'abcc'
, zupa musi zawierać jedena
, jedenb
i dwac
(wszystkie w różnych pozycjach).- Wejścia będą spełniać ograniczenia
M >= 1
,N >= 1
,1 <= length(S) <= M*N
. - Obrzeże miski może być dowolnym niealfabetycznym znakiem spacji , spójnym między przebiegami programu i wartościami wejściowymi.
- Pozycje liter w misce są losowe, więc wynik może się różnić przy każdym uruchomieniu programu z tymi samymi danymi wejściowymi.
- Biorąc pod uwagę dane wejściowe, każdy możliwy zestaw pozycji literowych powinien mieć niezerowe prawdopodobieństwo . Ponieważ nie można tego sprawdzić w kilku realizacjach programu, wyjaśnij, w jaki sposób twój kod to spełnia.
- Dozwolone są wiodące lub końcowe białe znaki wokół obręczy.
S
będą zawierać tylko wielkie litery. Jeśli chcesz, możesz wybrać tylko małe litery.- Wejścia i wyjścia są elastyczne jak zwykle. Na przykład wynikiem może być ciąg znaków z nowymi liniami, tablica znaków 2D lub lista linii.
- Programy lub funkcje są dozwolone w dowolnym języku programowania . Standardowe luki są zabronione.
- Najkrótszy kod w bajtach wygrywa.
Przykłady
Dane wejściowe są pokazane jako S, [M N]
, gdzie M
jest liczbą wierszy i N
liczbą kolumn. Znak #
jest używany do obręczy.
'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 #
###########################################
|+-
?