Соревнование
Напишите программу, которая может разбить входную химическую формулу (см. Ниже) и вывести соответствующие атомы в форме element: atom-count
.
вход
Пример ввода:
H2O
Ваш ввод всегда будет содержать хотя бы один элемент, но не более десяти. Ваша программа должна принимать входные данные, которые содержат круглые скобки, которые могут быть вложенными.
Элементы в строках всегда будут совпадать [A-Z][a-z]*
, то есть они всегда будут начинаться с заглавной буквы. Числа всегда будут однозначными.
Выход
Пример вывода (для вышеуказанного ввода):
H: 2
O: 1
Ваш вывод может опционально сопровождаться переводом строки.
Расщепление молекул
Числа справа от набора скобок распределяются по каждому элементу внутри:
Mg(OH)2
Должен вывести:
Mg: 1
O: 2
H: 2
Тот же принцип применим к отдельным атомам:
O2
Должен вывести:
O: 2
А также цепочки:
Ba(NO2)2
Должен вывести:
Ba: 1
N: 2
O: 4
Примеры
> 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
Входы обозначены стрелкой (знак больше, чем; >
).
Табло
Чтобы ваш счет отображался на доске, он должен быть в следующем формате:
# Language, Score
Или, если вы заработали бонус:
# Language, Score (Bytes - Bonus%)
Изменить: квадратные скобки больше не являются частью вопроса. Любые ответы, опубликованные до 3:00 UTC 23 сентября, являются безопасными и не будут затронуты этим изменением.
[HCl] = 0.01 mol L^-1
.
>
.