Torna alle sfide
Facile 0 risolte 0% di accettazione

Prima età non valida

Valida le età inserite e segnala dove si trova la prima voce errata invece di far crashare il programma.

Cosa imparerai

  • Verificare che un testo contenga solo cifre
  • Verificare che un numero sia in un intervallo
  • Segnalare la posizione della prima voce errata

Problema

Un modulo di registrazione riceve le età come testo. Una voce è valida quando, dopo aver rimosso gli spazi a entrambi gli estremi, contiene solo cifre (nessun segno) e il suo valore è compreso tra 0 e 150 inclusi.

Trova la prima voce non valida così il modulo può indicarla all'utente.

Implementa first_invalid_age(values).

Input

values: Le età digitati, nell'ordine del modulo.

Output

Restituisci l'indice della prima voce non valida, oppure -1 se sono tutte valide.

Vincoli

0 ≤ numero di voci ≤ 10,000

Ogni voce ha al massimo 20 caratteri

Esempi

Esempio 1
Input:
values = ["25", " 40 ", "abc", "200"]

Output atteso:
expected = 2
Input:
std::vector<std::string> values = {"25", " 40 ", "abc", "200"};

Output atteso:
long long expected = 2;
Input:
string[] values = new string[] {"25", " 40 ", "abc", "200"};

Output atteso:
long expected = 2;

Spiegazione

"25" e " 40 " (spazi rimossi) sono validi; "abc" all'indice 2 è la prima voce non valida.

Esempio 2
Input:
values = ["0", "150", "007"]

Output atteso:
expected = -1
Input:
std::vector<std::string> values = {"0", "150", "007"};

Output atteso:
long long expected = -1;
Input:
string[] values = new string[] {"0", "150", "007"};

Output atteso:
long expected = -1;

Spiegazione

Tutte e tre sono cifre tra 0 e 150 (007 è 7), quindi la risposta è -1.

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Togli gli spazi, poi verifica che la voce non sia vuota e contenga solo cifre.

Suggerimento 2

Solo dopo confronta il suo valore con 150.

Suggerimento 3

Un segno meno rende la voce non valida, e 007 è un 7 valido.

Complessità attesa

tempo O(lunghezza totale), spazio aggiuntivo O(1)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.