Chegou 2019 e provavelmente todos perceberam a peculiaridade desse número: na verdade, é composto por dois subnúmeros (20 e 19), representando uma sequência de números decrescentes consecutivos.
Desafio
Dado um número x
, retorne o comprimento da sequência máxima de números consecutivos e decrescentes que podem ser formados assumindo sub-números de x
.
Notas :
- sub-números não podem conter zeros à esquerda (por exemplo,
1009
não podem ser divididos em10
,09
) - consecutivo e decrescente significa que um número na sequência deve ser igual ao número anterior -1, ou (por exemplo, não pode ser dividido em porque e não é consecutivo )
52
5,2
5
2
2 ≠ 5 - 1
- a sequência deve ser obtida usando o número completo, por exemplo,
7321
você não pode descartar7
e obter a seqüência3
,2
,1
- apenas uma sequência pode ser obtido a partir do número, por exemplo,
3211098
não pode ser dividida em duas sequências3
,2
,1
e10
,9
,8
Entrada
- Um número inteiro (
>= 0
): pode ser um número, uma string ou uma lista de dígitos
Resultado
- Um único número inteiro, dado o número máximo de sub-números decrescentes (observe que o limite inferior desse número é
1
, ou seja, um número é composto por ele mesmo em uma sequência descendente de comprimento um)
Exemplos :
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
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
210 -> 2,1,0
errado (o mesmo com 0 -> 0
)? As tarefas dizem que " sub-números não podem conter zeros à esquerda "; zero é um caso especial?
212019
. Parece que não li todas as regras.