Chłopaki ASCII o zmiennookim wzroku lubią zmieniać ASCII Ii
:
>_> <_< >_< <_>
Biorąc pod uwagę szereg zmiennokształtnych, rozstawionych lub oddzielnych linii, przesuń Ii
bok na bok, opuść ścianę i wyprostuj niebo:
Ii
Najkrótszy manewr wygrywa nagrodę.
Powiedz co
Napisz program lub funkcję, która pobiera ciąg dowolnej listy tych czterech emotikonów ASCII, oddzielonych spacją lub znakiem nowej linii (z opcjonalnym znakiem nowej linii):
>_>
<_<
>_<
<_>
Na przykład dane wejściowe mogą być
>_> >_> <_>
lub
>_> >_> <_>
(Metoda, którą wspierasz, zależy od ciebie.)
Każdy emotikon wykonuje inną akcję na znakach I
i i
, które zawsze zaczynają się tak:
Ii
>_>
przesuwaI
się w prawo o jeden, jeśli to możliwe, a następnie przesuwai
w prawo o jeden.<_<
przesuwaI
się w lewo o jeden, jeśli to możliwe, a następnie przesuwai
w lewo o jeden, jeśli to możliwe.>_<
przesuwaI
się w prawo o jeden, jeśli to możliwe, a następnie przesuwai
w lewo o jeden, jeśli to możliwe.<_>
przesuwaI
się w lewo o jeden, jeśli to możliwe, a następnie przesuwai
w prawo o jeden.
I
nie można go przesunąć w lewo, jeśli znajduje się na lewej krawędzi linii (tak jak jest na początku), i nie można go przesunąć w prawo, jeśli i
jest bezpośrednio w prawo (jak to jest na początku).
i
nie można go przesunąć w lewo, jeśli I
jest bezpośrednio w lewo (jak to jest początkowo), ale zawsze można przesunąć w prawo.
Pamiętaj, że przy tych regułach I
zawsze pozostanie po lewej stronie i
i I
przedtem próbuje się przenieść i
wszystkie emotikony.
Twój program lub funkcja musi wydrukować lub zwrócić ciąg ostatniego Ii
wiersza po zastosowaniu wszystkich przesunięć w podanej kolejności, używając spacji (
) lub kropek ( .
) dla pustej przestrzeni. Końcowe spacje lub kropki oraz pojedyncza nowa linia są opcjonalnie dozwolone w danych wyjściowych. Nie mieszaj spacji i kropek.
Na przykład dane wejściowe
>_> >_> <_>
ma moc wyjściową
I...i
ponieważ zmiany obowiązują jak
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Najkrótszy kod w bajtach wygrywa. Tiebreaker jest wyżej głosowaną odpowiedzią.
Przypadki testowe
#[id number]
[space separated input]
[output]
Używanie .
dla jasności.
#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