Shifty-eyes ASCII suka menggeser ASCII Ii
:
>_> <_< >_< <_>
Diberikan string orang-orang licik, berjarak atau memisahkan garis, menggeser Ii
sisi ke sisi, meninggalkan dinding dan ke kanan langit:
Ii
Shifter terpendek memenangkan hadiah.
Katakan apa?
Tulis sebuah program atau fungsi yang mengambil string daftar sembarang dari empat emotikon ASCII ini, baik spasi atau baris baru dipisahkan (dengan baris tambahan opsional):
>_>
<_<
>_<
<_>
Misalnya, inputnya mungkin
>_> >_> <_>
atau
>_> >_> <_>
(Metode yang Anda dukung terserah Anda.)
Setiap emotikon melakukan tindakan berbeda pada I
dan i
karakter, yang selalu dimulai seperti ini:
Ii
>_>
bergeserI
ke kanan satu per satu, jika mungkin, dan kemudian bergeseri
ke kanan satu per satu.<_<
bergeserI
ke kiri satu per satu, jika mungkin, dan kemudian bergeseri
ke kiri satu per satu, jika mungkin.>_<
bergeserI
ke kanan satu per satu, jika mungkin, dan kemudian bergeseri
ke kiri satu per satu, jika mungkin.<_>
bergeserI
ke kiri satu per satu, jika mungkin, lalu bergeseri
ke kanan satu per satu.
I
tidak dapat digeser ke kiri jika berada di tepi kiri garis (seperti pada awalnya), dan tidak dapat digeser ke kanan jika i
langsung ke kanannya (seperti pada awalnya).
i
tidak dapat digeser ke kiri jika I
langsung ke kiri (seperti pada awalnya), tetapi selalu dapat digeser ke kanan.
Perhatikan bahwa dengan aturan ini, I
akan selalu tetap di sebelah kiri i
, dan I
dicoba digeser sebelumnya i
untuk semua emotikon.
Program atau fungsi Anda perlu mencetak atau mengembalikan string Ii
garis akhir setelah menerapkan semua pergeseran dalam urutan yang diberikan, menggunakan spasi (
) atau titik ( .
) untuk ruang kosong. Ruang atau periode yang tertinggal dan satu baris baru yang dibuntuti secara opsional diizinkan dalam output. Jangan mencampur ruang dan titik.
Misalnya input
>_> >_> <_>
memiliki output
I...i
karena shift berlaku suka
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Kode terpendek dalam byte menang. Tiebreaker adalah jawaban dengan suara lebih tinggi.
Uji Kasus
#[id number]
[space separated input]
[output]
Menggunakan .
untuk kejelasan.
#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