Eine ionische Verbindung heißt wie folgt : (metal name) (non-metal suffixed with -ide)
. Hier ist eine Liste aller Suffixe, die ersetzt werden müssen durch -ide
:
-on -ogen -ygen -ine -orus -ur -ic -ium
Die Anzahl der Atome jedes Elements in der Verbindung wird bei der Benennung ionischer Verbindungen nicht verwendet. Ignorieren Sie die Regeln für die Benennung multivalenter Metalle.
NaCl -> sodium + chlorine -> sodium chloride.
K2S -> potassium + sulphur -> potassium sulphide (or sulfide).
Yb2P3 -> ytterbium + phosphorus -> ytterbium phosphide.
PbTe2 -> lead + tellurium -> lead telluride.
Eine Zeichenkette , die eine ionische Verbindung enthält ( NaCl
, K2S
, Yb2P3
) wird als Eingabe gegeben werden. Es werden keine mehratomigen Ionen angegeben. Das Programm muss den Namen dieser Verbindung ausgeben.
Da niemand die Periodensystemdaten selbst kompilieren möchte, finden Sie hier eine Paste mit den Namen, Symbolen und der Frage, ob es sich um ein Metall jedes Elements handelt, in dieser Reihenfolge : (name) (symbol) (is metal?)
. Sie können dies in einer externen Datei speichern (die Länge der Datei wird nicht gezählt) oder Sie können die Daten in Ihrem Programm speichern (reduzieren Sie einfach die Länge dieser Zeichenfolge von dort). Möglicherweise benötigen Sie nicht alle bereitgestellten Informationen. Jedes Element wird durch eine neue Zeile getrennt.
Wie immer bei Code-Golf-Herausforderungen gewinnt der kürzeste Code.
sodium chloride
,potassium sulide
,ytterbium phosphoride
undlead telluriide
.Antworten:
Ruby, 114
Verwendet eine Einfügung des Elementtextes, den ich in der Partitur nicht gezählt habe. Ich entferne das Metalletikett (da ich davon ausgehe, dass die Verbindungen immer zuerst mit dem Metall angegeben werden, also brauche ich es eigentlich nicht) und erstelle damit ein Wörterbuch. Ich identifiziere den Teil, der durch "ide" ersetzt werden soll, indem ich das Ende der Zeichenfolge auf drei Buchstaben überprüfe, die mit beginnen
i
, vier Buchstaben, die mit endengen
, oder auf andere Weise nur die letzten beiden Zeichen.quelle
Python, 134 Zeichen.
quelle
APL
142150Wenn ich die Elementnamen und Symbole in einem Paar verschachtelter Arrays im APL-Arbeitsbereich speichern darf, sollte der folgende Code dies tun:
Es funktioniert ungefähr wie folgt:
Übernimmt die Eingabe vom Bildschirm über ⍞ und teilt den chemischen Namen in Symbole auf und verwirft alle Zahlen
e [s⍳c [1]]
Sucht den ersten Elementnamen anhand seines Symbols. Ähnliches gilt für c [2]
Identifiziert, welche der acht möglichen Enden das Nichtmetall hat, lässt es fallen und ersetzt es dann durch ide via:
Es gibt keine Fehlerbehebung, daher funktioniert dies nur für gültige Verbindungen, die über die Kennung Eins oder Null in der Liste der bereitgestellten Elemente diktiert werden.
quelle
oxygen -> oxide
oderhydrogen -> hydride
funktioniert?Mathematica
252 267254Code
ElementData[]
enthält Informationen zu den Elementen; es ist in Mathematica beheimatet.Beispiele
Erläuterung
Der Code entfernt Ziffern aus der Verbindung und trennt die Elemente durch ihre abgekürzten Namen. Anschließend werden die Abkürzungen in die Standardnamen der Elemente konvertiert. Schließlich wird das Nichtmetall durch den Begriff durch das richtige Suffix ersetzt.
quelle
PbTe2
,lead telluride
wird ausreichen.