Посчитайте целые числа от left до right включительно, у которых нет одинаковых соседних цифр. Используйте их обычную десятичную запись без ведущих нулей. Ноль и все остальные однозначные числа подходят под условие.
Реализуйте функцию counting_numbers(left, right).
Ввод
left: Первое допустимое значение.
right: Последнее допустимое значение.
Вывод
Верните количество значений, удовлетворяющих правилу.
Ограничения
0 ≤ left ≤ right ≤ 10¹⁸. Диапазон может быть слишком большим, чтобы проверять каждое число по отдельности.
Примеры
Ввод:
left = 10
right = 15
Ожидаемый вывод:
expected = 5
Ввод:
long long left = 10;
long long right = 15;
Ожидаемый вывод:
long long expected = 5;
Ввод:
long left = 10;
long right = 15;
Ожидаемый вывод:
long expected = 5;
Пояснение
Только 11 имеет одинаковые соседние цифры. Остальные пять чисел подходят.
Ввод:
left = 0
right = 9
Ожидаемый вывод:
expected = 10
Ввод:
long long left = 0;
long long right = 9;
Ожидаемый вывод:
long long expected = 10;
Ввод:
long left = 0;
long right = 9;
Ожидаемый вывод:
long expected = 10;
Пояснение
Все десять значений состоят из одной цифры и, следовательно, не имеют одинаковых соседей.
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.