Tantangan ini adalah yang pertama dari seri dua tantangan tentang Pengulangan. Yang kedua akan segera bangun.
Dalam bahasa yang disebut Pengulangan (sesuatu yang baru saja saya buat), ada string tak terbatas 12345678901234567890...dengan 1234567890pengulangan selamanya.
Sintaks berikut tersedia untuk nomor keluaran:
+-*/: Ini menyisipkan operator ke dalam string angka berulang.- Contoh:
+->1+2=3(+Menyisipkan+antara1dan2)+*->1+2*3=1+6=7(Sama seperti di atas, kecuali dua operator digunakan sekarang)/->1/2=0(Pengulangan menggunakan pembagian integer)//->1/2/3=0/3=0(Pengulangan menggunakan "asosiasi kiri" dengan banyak pengurangan dan pembagian)
- Setiap operator dimasukkan sehingga memiliki satu digit di sebelah kirinya, kecuali ada
c(lihat di bawah).
- Contoh:
c: Digabungkan dengan digit berikutnya dalam string.- Contoh:
c+->12+3=15(c"Terus"1dan menggabungkannya dengan digit berikutnya2,, untuk membentuk12)+c->1+23=24ccc->1234
- Contoh:
(): Kurung untuk memproses angka.- Contoh:
(c+)*->(12+3)*4=15*4=60(Pengulangan menggunakan urutan operasi)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- Contoh:
s: Lewati angka (menghapus nomor dari string yang tak terbatas).s+->2+3=5(smelompati1)csc->124(cConcats pertama1dan2,slompatan3, dan finalcconcat12ke4)+s+->7(Yang pertama+menambahkan1dan2membuat3,smelompat3, dan final+menambahkan3untuk4membuat7)cs*(++)->12*(4+5+6)=12*15=180
Dalam contoh di atas, hanya jumlah digit terbatas dalam string tak hingga yang digunakan. Jumlah digit yang digunakan setara dengan number of operators, concats and skips + 1.
Tugas Anda adalah, ketika diberi string kode Pengulangan, hasilkan output.
Contoh input dan output adalah:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
Ini kode golf, jadi kode terpendek dalam byte menang!
Spesifikasi:
- Anda dijamin hasilnya tidak akan pernah melampaui
2^31-1. - Anda juga dijamin bahwa input hanya akan terdiri dari simbol
+-*/cs(). - Program kosong akan menampilkan
1.
s+adalah 2+3sebagai contoh pertama. Dan masih sterus menggangguku. Saya bertanya-tanya bagaimana caranya +s()+mengembang. Jika 1+(2)+4kemudian (datang sebelum 2tetapi syang datang bahkan sebelum yang (tampaknya masih melompat 3, tidak 2. Namun jika hasilnya adalah 1+(3)+4maka efek dari stergantung pada apa yang datang setelah itu (bandingkan dengan +s+)
scApakah 23dan s+ini 1+3? Apakah smelewatkan 1sekarang atau 2? Semua contoh menggunakan operasi pertama pada operan 1dan 2... begitu juga scseharusnya 13.
~s? Jangan biarkan kami menggantung.