Thử thách này là lần đầu tiên trong loạt hai thử thách về Sự lặp lại. Thứ hai sẽ sớm lên.
Trong một ngôn ngữ gọi là Lặp lại (một cái gì đó tôi vừa tạo ra), bao gồm một chuỗi vô tận 12345678901234567890...
, với sự 1234567890
lặp lại mãi mãi.
Cú pháp sau đây có sẵn cho các số đầu ra:
+-*/
: Điều này chèn toán tử vào chuỗi các chữ số lặp lại.- Ví dụ:
+
->1+2
=3
(Việc+
chèn a+
giữa1
và2
)+*
->1+2*3
=1+6
=7
(Tương tự như trên, ngoại trừ hai toán tử được sử dụng ngay bây giờ)/
->1/2
=0
(Lặp lại sử dụng phép chia số nguyên)//
->1/2/3
=0/3
=0
(Lặp lại sử dụng "liên kết trái" với nhiều phép trừ và phép chia)
- Mỗi toán tử được chèn sao cho nó có một chữ số ở bên trái, trừ khi có
c
(xem bên dưới).
- Ví dụ:
c
: Nối với chữ số tiếp theo trong chuỗi.- Ví dụ:
c+
->12+3
=15
(Chữc
"tiếp tục"1
và nối nó với chữ số tiếp theo2
, để tạo thành12
)+c
->1+23
=24
ccc
->1234
- Ví dụ:
()
: Chân đế để xử lý số.- Ví dụ:
(c+)*
->(12+3)*4
=15*4
=60
(Lặp lại sử dụng thứ tự các thao tác)(c+)/c
->(12+3)/45
=15/45
=0
(cc+c)/
->(123+45)/6
=168/6
=28
- Ví dụ:
s
: Bỏ qua một số (loại bỏ số khỏi chuỗi vô hạn).s+
->2+3
=5
(s
bỏ qua1
)csc
->124
(Cácc
concats đầu tiên1
và2
,s
bỏ qua3
, và cácc
concats cuối cùng12
để4
)+s+
->7
(Lần đầu tiên+
thêm1
và2
thực hiện3
,s
bỏ qua3
và cuối cùng+
thêm3
vào4
để thực hiện7
)cs*(++)
->12*(4+5+6)
=12*15
=180
Trong các ví dụ trên, chỉ một lượng chữ số hữu hạn trong chuỗi vô hạn được sử dụng. Số chữ số được sử dụng tương đương với number of operators, concats and skips + 1
.
Nhiệm vụ của bạn là, khi được cung cấp một chuỗi mã Lặp lại, đưa ra kết quả.
Ví dụ về đầu vào và đầu ra là:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
Đây là mã golf, vì vậy mã ngắn nhất trong byte thắng!
Thông số kỹ thuật:
- Bạn được đảm bảo rằng kết quả sẽ không bao giờ đi trên
2^31-1
. - Bạn cũng được đảm bảo rằng đầu vào sẽ chỉ bao gồm các ký hiệu
+-*/cs()
. - Một chương trình trống sẽ xuất ra
1
.
s+
là 2+3
ví dụ đầu tiên. Và vẫn s
tiếp tục làm phiền tôi. Tôi tự hỏi làm thế nào +s()+
mở rộng. Nếu đó là 1+(2)+4
sau đó (
đến trước 2
nhưng s
mà đến ngay cả trước khi (
bỏ qua dường như vẫn còn 3
, không 2
. Tuy nhiên, nếu kết quả là 1+(3)+4
thì hiệu quả của một s
phụ thuộc vào những gì xảy ra sau nó (so sánh với nó +s+
)
sc
là 23
và s+
là 1+3
? Có s
bỏ qua 1
bây giờ hay 2
không? Tất cả các ví dụ sử dụng thao tác đầu tiên trên toán hạng 1
và 2
... vì vậy sc
nên 13
.
~
s thì sao? Đừng để chúng tôi treo.