In dieser Herausforderung besteht Ihre Aufgabe darin, ein Anion und ein Kation aufzunehmen und die chemische Formel der Verbindung auszugeben. Die Eingabe folgt diesen Regeln:
- Nehmen in 2 Strings (in beliebiger Reihenfolge) , die das Anion und Kation, zB
F
,NH_4
oderAl
. - Um die Ladung jedes Ions aufzunehmen, können Sie es entweder als Teil des Strings durch ein Caret (z. B.
F^-1
) trennen lassen oder zusätzliche numerische Argumente eingeben.- Hinweis: Solange Ihr numerischer Eingabetyp signiert ist, wird die Ladung des Anions als negative Zahl übergeben.
- Die Symbole sind immer echt und die Gebühren sind korrekt.
Die Ausgabe sollte diesen Regeln folgen:
- Verwendung
_
für Indizes: Fe 2 O 3 wäreFe_2O_3
. - Kation zuerst: NaCl, nicht ClNa.
- Neutrales Molekül: Li 2 O, nicht LiO oder LiO - .
- Niedrigstmögliche Koeffizienten: Fe 2 O 3 , nicht Fe 4 O 6 .
- Keine tiefgestellten: NaCl, nicht Na 1 Cl 1 .
- Keine Verschiebung: NH 4 OH, nicht NH 5 O.
- Bedingte Klammern:
- Verwenden Sie keine Klammern an einem einzelnen Atom: MgCl 2 , nicht Mg (Cl) 2 .
- Verwenden Sie keine Klammern, wenn nur eines der Ionen pro Molekül vorhanden ist: KClO 3 , nicht K (ClO 3 ).
- Verwenden Sie keine Klammern, wenn zwei oder mehr mehratomige Ionen vorhanden sind: Be 3 (PO 4 ) 2 , nicht Be 3 PO 4 2 oder Be 3 P 2 O 8 .
Hier sind einige zusätzliche Beispieleingaben und -ausgaben:
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
Da es sich um Code-Golf , die kürzeste Antwort in Bytes gewinnt.
NO_3^-1
. Auch ein weiterer Testfall sollte der erste sein, der mit einem gepaart ist ^-2
, damit es klappt (C(NH_2)_3)_2...
. Oder ein Fall, in dem das Ion, das mehr als einmal benötigt wird, mit einer Klammer beginnt.
Fe_4(Fe(CN)_6)_3
für preußisch blau.
Fe^+2, OH^-1: Fe(OH)_2
Für ein mehratomiges Ion mit 1 Element pro Element (OH^-1
).