Extraction sécurisée d'une valeur depuis une chaîne d'optionnels

Swift Medium optionals

Tâche «Extraction sécurisée d'une valeur depuis une chaîne d'optionnels»

On vous donne une chaîne contenant des entiers séparés par des espaces. Certains nombres peuvent être absents (remplacés par '?'). Écrivez une fonction qui prend une chaîne, la divise en composants, convertit chaque composant en un Int optionnel en utilisant Int($0). Si le composant est égal à '?', il doit être converti en nil. Ensuite, à partir du tableau d'optionnels obtenu, il faut extraire et additionner toutes les valeurs qui ne sont pas égales à nil, en utilisant une chaîne d'optionnels compacte (par exemple via compactMap et reduce). Si après traitement il ne reste aucun nombre, retourner nil. Sinon, retourner la somme en tant que Int. Données d'entrée : une seule chaîne. Données de sortie : un entier ou la chaîne "nil".

Format d\ entrée

Une seule chaîne contenant des entiers et/ou des caractères '?', séparés par des espaces.

Format de sortie

Un entier (la somme de tous les nombres non nuls) ou la chaîne "nil" s'il n'y a pas de nombres.

Exemples

Exemple 1

ENTRÉE
3 ? 7 ? 2
SORTIE
12

Exemple 2

ENTRÉE
? ? ?
SORTIE
nil

Exemple 3

ENTRÉE
3 cat apple dog
SORTIE
3
main.swift