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