En este desafío, su tarea es tomar un anión y un catión, y generar la fórmula química del compuesto. La entrada sigue estas reglas:
- Tome en 2 cadenas (en cualquier orden) que representa el anión y catión, por ejemplo
F
,NH_4
oAl
. - Para asumir la carga de cada ion, puede tenerlo como parte de la cadena separada por un cursor (p
F^-1
. Ej. ) O tomar argumentos numéricos adicionales.- Nota: Mientras su tipo de entrada numérica esté firmado, la carga del anión se pasará como un número negativo.
- Los símbolos siempre serán reales y los cargos serán precisos.
El resultado debe seguir estas reglas:
- Uso
_
para subíndices: Fe 2 O 3 seríaFe_2O_3
. - Cation primero: NaCl, no ClNa.
- Molécula neutra: Li 2 O, no LiO o LiO - .
- Coeficientes más bajos posibles: Fe 2 O 3 , no Fe 4 O 6 .
- Sin subíndices: NaCl, no Na 1 Cl 1 .
- Sin desplazamiento: NH 4 OH, no NH 5 O.
- Paréntesis condicionales:
- No use paréntesis en un ion de un solo átomo: MgCl 2 , no Mg (Cl) 2 .
- No use paréntesis si solo hay uno de los iones por molécula: KClO 3 , no K (ClO 3 ).
- SÍ use paréntesis si hay dos o más iones poliatómicos: Be 3 (PO 4 ) 2 , no Be 3 PO 4 2 o Be 3 P 2 O 8 .
Aquí hay algunas entradas y salidas de muestra adicionales:
Input Output
Fe^+3, O^-2 Fe_2O_3
Fe^+2, O^-2 FeO
H^+1, SO_4^-2 H_2SO_4
Al^+3, SO_4^-2 Al_2(SO_4)_3
NH_4^+1, SO_4^-2 (NH_4)_2SO_4
Hg_2^+2, PO_4^-3 (Hg_2)_3(PO_4)_2
NH_4^+1, OH^-1 NH_4OH
Hg_2^+2, O_2^-2 Hg_2O_2
Como se trata de código de golf , gana la respuesta más corta en bytes.
NO_3^-1
. También otro caso de prueba debería ser el primero emparejado con un ^-2
, por lo que sería (C(NH_2)_3)_2...
. O un caso donde el ion que se necesita más de una vez comienza con un soporte.
Fe_4(Fe(CN)_6)_3
para el azul de Prusia.
Fe^+2, OH^-1: Fe(OH)_2
para un ion poliatómico con 1 de cada elemento (OH^-1
).