Os caras ASCII de olhos esquisitos gostam de trocar de ASCII Ii:
>_> <_< >_< <_>
Dada uma série de caras safados, espaçados ou linhas separadas, mude o Iilado para o outro, deixou a parede e endireitou o céu:
Ii
O menor shifter ganha o prêmio.
Diga o quê?
Escreva um programa ou função que inclua uma sequência de uma lista arbitrária desses quatro emoticons ASCII, separados por espaço ou nova linha (com uma nova linha opcional à direita):
>_>
<_<
>_<
<_>
Por exemplo, a entrada pode ser
>_> >_> <_>ou
>_> >_> <_>(O método que você apoia depende de você.)
Cada emoticon executa uma ação diferente nos caracteres Ie i, que sempre começam assim:
Ii
>_>desloca-seIpara a direita em um, se possível, e desloca-seipara a direita em um.<_<deslocaIpara a esquerda em um, se possível, e deslocaipara a esquerda em um, se possível.>_<deslocaIpara a direita em um, se possível, e deslocaipara a esquerda em um, se possível.<_>mudaIpara a esquerda em um, se possível, e depoisipara a direita em um.
Inão pode ser deslocado para a esquerda se estiver na borda esquerda da linha (como está inicialmente) e não pode ser deslocado para a direita se iestiver diretamente à sua direita (como está inicialmente).
inão pode ser deslocado para a esquerda se Iestiver diretamente para a esquerda (como é inicialmente), mas sempre pode ser deslocado para a direita.
Observe que, com essas regras, Isempre permanecerá à esquerda de ie tentará Iser alterado antes ipara todos os emoticons.
Seu programa ou função precisa imprimir ou retornar uma sequência da Iilinha final após aplicar todos os turnos na ordem indicada, usando espaços ( ) ou pontos ( .) para espaço vazio. Espaços ou períodos finais e uma nova linha final são opcionalmente permitidos na saída. Não misture espaços e períodos.
Por exemplo, a entrada
>_> >_> <_>tem saída
I...iporque as mudanças se aplicam como
start |Ii >_> |I.i >_> |.I.i <_> |I...i
O código mais curto em bytes vence. O desempatador é a resposta votada mais alta.
Casos de teste
#[id number]
[space separated input]
[output]
Usando .para maior clareza.
#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
