Роллы - это вкусные сладости, сделанные из слоя бисквита, слоя сливок (или мороженого), свернутых в виде спирали, см. Википедию .
Ваша задача состоит в том, чтобы получить непустую строку фразы из стандартного ввода, убрать пробелы и свернуть ее как рулет, начиная с центра справа налево в направлении против часовой стрелки, пока пробелы начинаются внизу первого символ фразы, от центра слева направо, как в следующем примере.
Обратите внимание, что фраза будет слоем бисквита, а слой сливок будет представлен как пустые места.
Input: Lorem ipsum dolor sit amet, consectetu adipiscing elit, sed do eiusmod
Output with spaces ' ' represented as _
ilegnicsip
t________i
,_srolod_d
s_i____m_a
e_t_oL_u_u
d_a_r__s_t
d_m_emip_e
o_e______t
e_t,consec
i____
usmod
Контрольные примеры
Input: Lorem ipsum dolor sit amet, consectetu adipiscing elit, sed do eiusmod
Output:
ilegnicsip
t i
, srolod d
s i m a
e t oL u u
d a r s t
d m emip e
o e t
e t,consec
i
usmod
Input: Sandbox for Proposed Challenges
Output:
soporp
e r
d aS o
c n f
h dbox
a
llenges
Input: Cake
Output:
aC
k
e
Input: it
Output:
ti
Правила:
- Это код-гольф, поэтому выигрывает самый короткий код.
- Стандартные лазейки запрещены.
Ответы:
Python 2,
202200 байт-2 байта благодаря LevitatingLion
источник
exec
:exec~i%4*'c=zip(*c[::-1]);'
. Это экономит два байтаBefunge,
260250 байтПопробуйте онлайн!
Основная идея состоит в том, что мы строим спираль в нижней половине игрового поля, сохраняя отслеживание минимальной и максимальной координат по ходу движения. Как только все входные данные были обработаны, мы перебираем диапазон координат и выписываем сохраненное содержимое.
Детальное объяснение
Обратите внимание, что значения dx и dy находятся в диапазоне от 0 до 3, что соответствует относительным смещениям -1, 0, 1, 0. Таким образом, обновление направления выполняется путем добавления 1 по модулю 4. Преобразование в относительное смещение выполняется с помощью вычитая 1, по модулю 2.
источник