Ребята с резким взором 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
Самый короткий код в байтах побеждает. Ответ Tiebreaker выше.
Тестовые случаи
#[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
