Il 2019 è arrivato e probabilmente tutti hanno notato la peculiarità di questo numero: è infatti composto da due sotto-numeri (20 e 19) che rappresentano una sequenza di numeri discendenti consecutivi.
Sfida
Dato un numero x, restituisce la lunghezza della sequenza massima di numeri consecutivi in ordine decrescente che possono essere formati prendendo sotto-numeri di x.
Appunti :
- i numeri secondari non possono contenere zeri iniziali (ad es.
1009non possono essere suddivisi in10,09) - consecutivo e decrescente significa che un numero nella sequenza deve essere uguale al numero precedente -1, oppure (ad es.
52non può essere suddiviso in5,2perché5e2non sono consecutivi2 ≠ 5 - 1) - la sequenza deve essere ottenuto utilizzando il numero completo, ad esempio in
7321non può scartare7ed ottenere la sequenza3,2,1 - solo una sequenza può essere ottenuta dal numero, ad esempio,
3211098non può essere diviso in due sequenze3,2,1e10,9,8
Ingresso
- Un numero intero (
>= 0): può essere un numero, una stringa o un elenco di cifre
Produzione
- Un singolo intero dato il numero massimo di sotto-numeri decrescenti (si noti che il limite inferiore di questo numero è
1, cioè un numero è composto da solo in una sequenza decrescente di lunghezza uno)
Esempi:
2019 --> 20,19 --> output : 2
201200199198 --> 201,200,199,198 --> output : 4
3246 --> 3246 --> output : 1
87654 --> 8,7,6,5,4 --> output : 5
123456 --> 123456 --> output : 1
1009998 --> 100,99,98 --> output : 3
100908 --> 100908 --> output : 1
1110987 --> 11,10,9,8,7 --> output : 5
210 --> 2,1,0 --> output : 3
1 --> 1 --> output : 1
0 --> 0 --> output : 1
312 --> 312 --> output : 1
191 --> 191 --> output : 1
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard con regole I / O predefinite , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
210 -> 2,1,0sbagliato (lo stesso con 0 -> 0)? Il task dice " i numeri secondari non possono contenere zeri iniziali ", zero è un caso speciale?
212019. Sembra che non ho letto tutte le regole.