El reto
Escriba un programa que pueda descomponer una fórmula química de entrada (ver más abajo) y generar sus respectivos átomos en la forma element: atom-count
.
Entrada
Entrada de muestra:
H2O
Su entrada siempre contendrá al menos un elemento, pero no más de diez. Su programa debe aceptar entradas que contengan paréntesis, que pueden estar anidadas.
Los elementos en las cadenas siempre coincidirán [A-Z][a-z]*
, lo que significa que siempre comenzarán con una letra mayúscula. Los números siempre serán de un solo dígito.
Salida
Salida de muestra (para la entrada anterior):
H: 2
O: 1
Su salida puede ser opcionalmente seguida por una nueva línea.
Descomponiendo Moléculas
Los números a la derecha de un conjunto de paréntesis se distribuyen a cada elemento dentro:
Mg(OH)2
Debería dar salida:
Mg: 1
O: 2
H: 2
El mismo principio se aplica a los átomos individuales:
O2
Debería dar salida:
O: 2
Y también encadenando:
Ba(NO2)2
Debería dar salida:
Ba: 1
N: 2
O: 4
Ejemplos
> 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
Las entradas se denotan con una flecha (signo mayor que >
) ;
Marcador
Para que su puntaje aparezca en el tablero, debe estar en este formato:
# Language, Score
O si ganaste un bono:
# Language, Score (Bytes - Bonus%)
Editar: Los corchetes ya no son parte de la pregunta. Cualquier respuesta publicada antes de las 3 a.m., hora UTC del 23 de septiembre, es segura y no se verá afectada por este cambio.
[HCl] = 0.01 mol L^-1
.
>
.