Tantangan
Tulis sebuah program yang dapat memecah formula input kimia (lihat di bawah), dan output masing-masing atom dalam bentuk element: atom-count
.
Memasukkan
Input sampel:
H2O
Input Anda akan selalu mengandung setidaknya satu elemen, tetapi tidak lebih dari sepuluh. Program Anda harus menerima input yang mengandung tanda kurung, yang dapat disarangkan.
Elemen dalam string akan selalu cocok [A-Z][a-z]*
, artinya mereka akan selalu mulai dengan huruf besar. Angka akan selalu satu digit.
Keluaran
Output sampel (untuk input di atas):
H: 2
O: 1
Output Anda secara opsional dapat diikuti oleh baris baru.
Memecah Molekul
Angka di sebelah kanan satu set kurung didistribusikan ke setiap elemen di dalamnya:
Mg(OH)2
Haruskah output:
Mg: 1
O: 2
H: 2
Prinsip yang sama berlaku untuk masing-masing atom:
O2
Haruskah output:
O: 2
Dan juga chaining:
Ba(NO2)2
Haruskah output:
Ba: 1
N: 2
O: 4
Contohnya
> Ba(PO3)2
Ba: 1
P: 2
O: 6
> C13H18O2
C: 13
H: 18
O: 2
> K4(ON(SO3)2)2
K: 4
O: 14
N: 2
S: 4
> (CH3)3COOC(CH3)3
C: 8
H: 18
O: 2
> (C2H5)2NH
C: 4
H: 11
N: 1
> Co3(Fe(CN)6)2
Co: 3
Fe: 2
C: 12
N: 12
Input dilambangkan dengan tanda panah (lebih dari tanda; >
).
Papan angka
Agar skor Anda muncul di papan tulis, itu harus dalam format ini:
# Language, Score
Atau jika Anda mendapat bonus:
# Language, Score (Bytes - Bonus%)
Sunting: Kurung kotak tidak lagi menjadi bagian dari pertanyaan. Jawaban apa pun yang diposting sebelum pukul 3AM UTC, 23 September, aman dan tidak akan terpengaruh oleh perubahan ini.
[HCl] = 0.01 mol L^-1
.
>
.