Extracción segura de valores de una cadena de opcionales
Swift
Medium
optionals
Tarea «Extracción segura de valores de una cadena de opcionales»
Se le da una cadena que contiene números enteros separados por espacios. Algunos números pueden faltar (reemplazados por '?'). Escriba una función que reciba la cadena, la divida en componentes, convierta cada componente en un Int opcional usando Int($0). Si el componente es '?', debe convertirse en nil. Luego, del arreglo de opcionales resultante, se deben extraer y sumar todos los valores que no sean nil, utilizando una cadena compacta de opcionales (por ejemplo, mediante compactMap y reduce). Si después del procesamiento no queda ningún número, devolver nil. De lo contrario, devolver la suma como Int. Datos de entrada: una sola cadena. Datos de salida: un número entero o la cadena "nil".
Formato de entrada
Una sola cadena que contiene números enteros y/o caracteres '?', separados por espacios.
Formato de salida
Un número entero (la suma de todos los números no nulos) o la cadena "nil" si no hay números.
Ejemplos
Ejemplo 1
ENTRADA
3 ? 7 ? 2
SALIDA
12
Ejemplo 2
ENTRADA
? ? ?
SALIDA
nil
Ejemplo 3
ENTRADA
3
cat
apple
dog
SALIDA
3
main.swift