Хлопці з високими очима ASCII люблять зміщувати ASCII Ii
:
>_> <_< >_< <_>
Враховуючи рядок стриманих хлопців, розташованих один від одного або окремими лініями, змістіть Ii
бічну сторону вліво, стіну ліворуч та праворуч небо:
Ii
Найкоротший перемикач виграє приз.
Скажи що?
Напишіть програму або функцію, яка містить рядок з довільного списку цих чотирьох смайликів ASCII, або розділених пробілом, або новою лінією (з необов'язковим зворотним новим рядком):
>_>
<_<
>_<
<_>
Наприклад, вхід може бути
>_> >_> <_>
або
>_> >_> <_>
(Метод, який ви підтримуєте, залежить від вас.)
Кожен смайлик виконує різні дії на символи I
та i
символи, які завжди починаються так:
Ii
>_>
зміщуєтьсяI
вправо по одному, якщо можливо, а потім зміщуєтьсяi
вправо.<_<
зрушуєI
вліво на один, якщо це можливо, а потім зсуваєтьсяi
вліво на один, якщо це можливо.>_<
зміщуєтьсяI
вправо по одному, якщо можливо, а потім зміщуєтьсяi
вліво, якщо можливо.<_>
I
, якщо можливо, зміщується вліво, а потім зміщуєтьсяi
вправо.
I
не може бути зміщена вліво, якщо вона знаходиться в лівій частині лінії (як це було спочатку), і не може бути зміщена вправо, якщо i
прямо вправо (як це було спочатку).
i
не може бути зміщена вліво, якщо I
знаходиться прямо вліво (як це було спочатку), але завжди може бути зміщена праворуч.
Зауважте, що ці правила I
завжди залишатимуться ліворуч i
і I
намагаються змістити їх раніше i
для всіх смайликів.
Вашій програмі або функції потрібно надрукувати або повернути рядок заключного Ii
рядка після застосування всіх зрушень у заданому порядку, використовуючи пробіли (
) або періоди ( .
) для порожнього простору. Додаткові проміжки або періоди та один зворотний новий рядок необов'язково допускаються у висновку. Не змішуйте пробіли та періоди.
Наприклад, вхід
>_> >_> <_>
має вихід
I...i
тому що зміни змінюються як
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Виграє найкоротший код у байтах. Tiereaker є вищою відповіді.
Випробування
#[id number]
[space separated input]
[output]
Використання .
для наочності.
#0
[empty string]
Ii
#1
>_>
I.i
#2
<_<
Ii
#3
>_<
Ii
#4
<_>
I.i
#5
>_> >_>
.I.i
#6
>_> <_<
Ii
#7
>_> >_<
.Ii
#8
>_> <_>
I..i
#9
<_< >_>
I.i
#10
<_< <_<
Ii
#11
<_< >_<
Ii
#12
<_< <_>
I.i
#13
>_< >_>
I.i
#14
>_< <_<
Ii
#15
>_< >_<
Ii
#16
>_< <_>
I.i
#17
<_> >_>
.I.i
#18
<_> <_<
Ii
#19
<_> >_<
.Ii
#20
<_> <_>
I..i
#21
>_> >_> <_>
I...i
#22
<_> >_> >_> >_> <_> <_<
.I...i
#23
<_> >_> >_> >_> <_> <_< >_< <_< >_<
..Ii
#24
>_> >_< >_> >_> >_> >_> >_> >_> <_> <_> <_<
...I.....i