A los chicos ASCII de ojos temblorosos les gusta cambiar de ASCII Ii:
>_> <_< >_< <_>
Dada una cadena de personas cambiantes, separadas o líneas separadas, desplace el Iilado a lado, deje la pared y los cielos a la derecha:
Ii
La palanca de cambio más corta gana el premio.
¿Que qué?
Escriba un programa o función que incluya una cadena de una lista arbitraria de estos cuatro emoticones ASCII, separados por espacio o por nueva línea (con una nueva línea final opcional):
>_>
<_<
>_<
<_>
Por ejemplo, la entrada podría ser
>_> >_> <_>o
>_> >_> <_>(El método que admite depende de usted).
Cada emoticón realiza una acción diferente en los caracteres Iy i, que siempre comienzan así:
Ii
>_>se desplazaIhacia la derecha por uno, si es posible, y luego se desplazaihacia la derecha por uno.<_<se desplazaIhacia la izquierda por uno, si es posible, y luego se desplazaihacia la izquierda por uno, si es posible.>_<se desplazaIhacia la derecha por uno, si es posible, y luego se desplazaihacia la izquierda por uno, si es posible.<_>se desplazaIhacia la izquierda por uno, si es posible, y luego se desplazaihacia la derecha por uno.
Ino puede desplazarse a la izquierda si está en el borde izquierdo de la línea (como está inicialmente), y no puede desplazarse a la derecha si iestá directamente a su derecha (como está inicialmente).
ino se puede desplazar hacia la izquierda si Iestá directamente a su izquierda (como es inicialmente), pero siempre se puede desplazar hacia la derecha.
Tenga en cuenta que con estas reglas, Isiempre permanecerá a la izquierda de i, y Ise intenta cambiar antes ipara todos los emoticones.
Su programa o función necesita imprimir o devolver una cadena de la Iilínea final después de aplicar todos los cambios en el orden dado, usando espacios ( ) o puntos ( .) para el espacio vacío. Los espacios o puntos finales y una nueva línea final opcional se permiten opcionalmente en la salida. No mezcle espacios y períodos.
Por ejemplo, la entrada
>_> >_> <_>tiene salida
I...iporque los turnos se aplican como
start |Ii >_> |I.i >_> |.I.i <_> |I...i
El código más corto en bytes gana. Tiebreaker es la respuesta más votada.
Casos de prueba
#[id number]
[space separated input]
[output]
Utilizando .para mayor claridad.
#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
