Напишіть програму або функцію, яка містить непорожній однорядковий рядок для друку символів ascii, виключаючи пробіл:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Ви можете припустити, що введення дійсне.
На основі введення намалюйте новий рядок, розташований на текстовій сітці пробілів та нових рядків, дотримуючись графіки черепахи - ескізні правила, коли черепаха завжди займає один простір сітки та може зустрічатися лише з кардинальними напрямками.
Надрукуйте перший символ із вхідного рядка до текстової сітки. Черепаха починається тут обличчям праворуч. Ітерація над іншими символами у вхідному рядку (зупиняється лише, якщо черепаха застрягла), повторюючи цей процес:
Якщо 4 простору сітки, безпосередньо сусідні з черепашкою, заповнені (тобто жоден з них не є пробілом), припиніть ітерацію. Черепаха застрягла, а сітка настільки повна, як це може бути.
Подивіться на поточний символ у введенні порівняно з попереднім символом:
Якщо поточний символ лексично передує попередньому, поверніть черепаху на чверть повороту вліво.
Якщо поточний символ лексично після попереднього, поверніть черепаху на чверть на поворот праворуч.
Якщо поточний символ дорівнює попередньому, не обертайте черепаху.
Якщо простір сітки, з яким зараз знаходиться черепаха, не порожній (тобто не пробіл), повторно обертайте черепаху на чверть повороту вліво, поки вона не стикається з порожнім простором сітки.
Перемістіть черепаху одним кроком вперед у напрямку, до якого вона стикається, і надрукуйте поточний символ на сітці в новому місці черепахи.
Друкуйте або повертайте отриманий рядок текстової сітки без сторонніх рядків або стовпців пробілу. У рядках може бути пробіли до правого правого стовпця з пробілом, але не далі. Необов’язково допускається одна окрема нова строка.
Виграє найкоротший код у байтах.
Приклад
Ось усі етапи введення spattuuxze
. Ці ^V<>
символи показують напрямок черепаха стикається, вони НЕ частина входу або виходу.
s>
^
p
s
<ap
s
^
t
ap
s
^
t
t
ap
s
tu>
t
ap
s
tuu>
t
ap
s
tuu
t x
apV
s
tuu
<zx
ap
s
У цей момент черепаха застрягла, тому e
ніколи не друкується, і кінцевий вихід:
tuu
tzx
ap
s
Далі йде аналогічний, але недійсний вихід, оскільки він має непотрібний провідний стовпчик пробілів:
tuu
tzx
ap
s
Випробування
spattuuxze
tuu
tzx
ap
s
spattuuxxze
tuu
t x
apx
sze
1111111
1111111
ABCDEFGHIJKLMNOP
PEFG
ODAH
NCBI
MLKJ
`_^]\[ZYXWVUTSR
^_RS
\]`UT
[ZWV
YX
Woo!
W
o
o!
woo!
!o
o
w
Wheeee
W
heeee
banana
a
an
an
b
Turtle
T
ure
tl
turTle
e
tTl
ur
(Скажіть мені відразу, якщо щось із цього здається неправильним.)
PONMLKJIHGFEDCBA
, оскільки результат не просто квадрат, а контраст, ABCDEFGHIJKLMNOP
щоб виділити асиметрію в правилах.