Những anh chàng ASCII có đôi mắt sắc sảo muốn thay đổi ASCII Ii
:
>_> <_< >_< <_>
Đưa ra một chuỗi những kẻ nhút nhát, cách nhau hoặc tách các dòng, chuyển Ii
bên này sang bên kia, rời khỏi bức tường và bên phải bầu trời:
Ii
Các shifter ngắn nhất sẽ giành giải thưởng.
Nói gì cơ?
Viết chương trình hoặc hàm lấy một chuỗi danh sách tùy ý của bốn biểu tượng cảm xúc ASCII này, được phân cách bằng dấu cách hoặc dấu cách (với một dòng mới theo dõi tùy chọn):
>_>
<_<
>_<
<_>
Ví dụ: đầu vào có thể là
>_> >_> <_>
hoặc là
>_> >_> <_>
(Phương pháp bạn hỗ trợ tùy thuộc vào bạn.)
Mỗi biểu tượng cảm xúc thực hiện một hành động khác nhau trên I
và các i
ký tự, luôn bắt đầu như thế này:
Ii
>_>
dịch chuyểnI
sang phải một, nếu có thể, và sau đó dịch chuyểni
sang phải một.<_<
dịch chuyểnI
sang trái bởi một, nếu có thể, và sau đó dịch chuyểni
sang trái bởi một, nếu có thể.>_<
dịch chuyểnI
sang phải một, nếu có thể, và sau đó dịch chuyểni
sang trái một, nếu có thể.<_>
dịch chuyểnI
sang trái một, nếu có thể, và sau đó dịch chuyểni
sang phải một.
I
không thể được dịch chuyển sang trái nếu nó ở cạnh trái của dòng (như ban đầu) và không thể được dịch chuyển sang phải nếu i
trực tiếp bên phải (như ban đầu).
i
không thể được dịch chuyển sang trái nếu I
trực tiếp bên trái (như ban đầu), nhưng luôn có thể được dịch chuyển sang phải.
Lưu ý rằng với các quy tắc này, I
sẽ luôn ở bên trái i
và I
được cố gắng thay đổi trước i
cho tất cả các biểu tượng cảm xúc.
Chương trình hoặc chức năng của bạn cần in hoặc trả về một chuỗi của Ii
dòng cuối cùng sau khi áp dụng tất cả các ca theo thứ tự đã cho, sử dụng khoảng trắng (
) hoặc dấu chấm ( .
) cho không gian trống. Không gian lưu trữ hoặc dấu chấm và một dòng mới duy nhất được tùy chọn cho phép trong đầu ra. Không trộn lẫn không gian và thời gian.
Ví dụ: đầu vào
>_> >_> <_>
có đầu ra
I...i
bởi vì sự thay đổi áp dụng như
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Mã ngắn nhất tính bằng byte thắng. Tiebreaker là câu trả lời bình chọn cao hơn.
Các trường hợp thử nghiệm
#[id number]
[space separated input]
[output]
Sử dụng .
cho rõ ràng.
#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