Problema
Ver original (inglés)Cuenta los enteros desde left hasta right, incluyendo ambos extremos, que no tengan dígitos vecinos iguales. Usa su escritura decimal habitual, sin ceros a la izquierda. El cero y todos los demás números de un solo dígito califican.
Implementa counting_numbers(left, right).
Entrada
left: El primer valor permitido.
right: El último valor permitido.
Salida
Devuelve cuántos valores cumplen la regla.
Restricciones
0 ≤ left ≤ right ≤ 10¹⁸. El rango puede ser demasiado grande para inspeccionar cada entero individualmente.
Ejemplos
Entrada:
left = 10
right = 15
Salida esperada:
expected = 5
Entrada:
long long left = 10;
long long right = 15;
Salida esperada:
long long expected = 5;
Entrada:
long left = 10;
long right = 15;
Salida esperada:
long expected = 5;
Explicación
Solo el 11 tiene dígitos vecinos iguales. Los otros cinco números califican.
Entrada:
left = 0
right = 9
Salida esperada:
expected = 10
Entrada:
long long left = 0;
long long right = 9;
Salida esperada:
long long expected = 10;
Entrada:
long left = 0;
long right = 9;
Salida esperada:
long expected = 10;
Explicación
Todos los diez valores tienen solo un dígito y por lo tanto no tienen vecinos iguales.
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.