Extração segura de valor de uma cadeia de opcionais
Swift
Medium
optionals
Tarefa «Extração segura de valor de uma cadeia de opcionais»
Você recebe uma string contendo números inteiros separados por espaços. Alguns números podem estar ausentes (substituídos por '?'). Escreva uma função que receba uma string, a divida em componentes, converta cada componente em um Int opcional usando Int($0). Se o componente for igual a '?', ele deve ser convertido para nil. Em seguida, a partir do array de opcionais obtido, é necessário extrair e somar todos os valores que não são nil, usando uma cadeia compacta de opcionais (por exemplo, através de compactMap e reduce). Se após o processamento não restar nenhum número, retornar nil. Caso contrário, retornar a soma como Int. Dados de entrada: uma string. Dados de saída: um número inteiro ou a string "nil".
Formato de Entrada
Uma string contendo números inteiros e/ou caracteres '?' separados por espaços.
Formato de Saída
Número inteiro (soma de todos os números diferentes de nil) ou a string "nil" se não houver números.
Exemplos
Exemplo 1
ENTRADA
3 ? 7 ? 2
SAÍDA
12
Exemplo 2
ENTRADA
? ? ?
SAÍDA
nil
Exemplo 3
ENTRADA
3
cat
apple
dog
SAÍDA
3
main.swift