Sichere Extraktion eines Wertes aus einer Kette von Optionals

Swift Medium optionals

Aufgabe «Sichere Extraktion eines Wertes aus einer Kette von Optionals»

Sie erhalten eine Zeichenkette, die durch Leerzeichen getrennte ganze Zahlen enthält. Einige Zahlen können fehlen (ersetzt durch '?'). Schreiben Sie eine Funktion, die die Zeichenkette annimmt, sie in Bestandteile zerlegt, jeden Bestandteil in ein optionales Int umwandelt, indem Sie Int($0) verwenden. Wenn der Bestandteil '?' ist, muss er in nil umgewandelt werden. Aus dem resultierenden Array von Optionals müssen dann alle Werte, die nicht nil sind, extrahiert und summiert werden, unter Verwendung einer kompakten Kette von Optionals (z. B. über compactMap und reduce). Wenn nach der Verarbeitung keine Zahl mehr übrig ist, geben Sie nil zurück. Andernfalls geben Sie die Summe als Int zurück. Eingabedaten: eine Zeichenkette. Ausgabedaten: eine ganze Zahl oder die Zeichenkette "nil".

Eingabeformat

Eine Zeichenkette, die ganze Zahlen und/oder das Zeichen '?' enthält, getrennt durch Leerzeichen.

Ausgabeformat

Eine ganze Zahl (Summe aller nicht nil Zahlen) oder die Zeichenkette "nil", wenn es keine Zahlen gibt.

Beispiele

Beispiel 1

EINGABE
3 ? 7 ? 2
AUSGABE
12

Beispiel 2

EINGABE
? ? ?
AUSGABE
nil

Beispiel 3

EINGABE
3 cat apple dog
AUSGABE
3
main.swift