Dates - Solo 2 output errati


#1

Salve io ho creato questo algoritmo per il problema dates. Di tutti gli output solo 2 sono sbagliati e non riesco a capire quale sia il problema.

//old link//

Vorrei almeno per capire in che sezione ho prodotto l’errore

aggiornamento*
Ho rifatto il problema con una verifica che non venissero conteggiati i doppioni, ma i due output errati rimangono.

https://pastebin.com/1AUm8XM5


#2

prova con questo input
111998
se non ho capito male il testo 3 date potrebbero essere compatibili con quella sequenza

  1. 1 gen 1998 01/01/1998

  2. 1 nov 1998 01/11/1998

  3. 11 gen 1998 11/01/1998


#3

potrebbe essere
01/01/1998
10/01/1998
01/10/1998
10/10/1998
01/11/1998
11/01/1998
10/11/1998
11/10/1998

Forse ho capito male io, ma il mio programma fa tutti gli output richiesti giusti tranne 2


#4

Siamo sempre a livello di interpretazioni personali ma secondo me interpretazioni come 10/01/1998 non sono accettabili perché lo 0 dopo lo 1 del giorno è significativo! e così è per i mesi.
Il testo dice che:

optionally preceded by a zero when it is a single digit (i.e., 05 and 5 are both possible).

quindi un 1 può diventare 01 ma non 10. Di conseguenza dalle otto che proponi si ritorna a 3.
In sostanza può mancare la prima cifra (quella a sinistra) se è 0 di un giorno o di un mese.
Per quanto riguarda l’anno può mancare la prima o anche le prime due (1 o 19)


#5

Francamente non vedo perché sia necessario ricorrere a interpretazioni personali quando il testo (citato giustamente da @v.bizzarri ) specifica chiaramente cosa è ammesso.


#6

Ok mi era sfuggita questa condizione, ora provo a rifarlo


#7

Anche io avevo lo stesso problema, solo 2 output errati
Il mio bug è venuto fuori provando una data del genere: 08120056

Bisogna considerare che davanti all’anno ci possono essere pure 2 zeri


#8

A scanso di equivoci per la mia soluzione 08120056 non è interpretabile come data: output 0


#9

Questa non corrisponde ad alcuna data valida (anno a quattro cifre ma non compreso tra 1900 e 1999).


#10

Esattamente, l’ho scritta perché inizialmente il mio programma calcolava come output 1, considerando il 0056 come data valida.
Il mio problema erano i due zeri davanti che non venivano considerati, facendo così risultare valido il 56.