Problem
Count integers from left through right, including both endpoints, that have no equal neighboring digits. Use their usual decimal writing with no leading zeroes. Zero and all other single-digit numbers qualify.
Implement counting_numbers(left, right).
Input
left: The first allowed value.
right: The last allowed value.
Output
Return how many values satisfy the rule.
Constraints
0 ≤ left ≤ right ≤ 10¹⁸. The range may be too large to inspect each integer individually.
Examples
Input:
left = 10
right = 15
Expected output:
expected = 5
Input:
long long left = 10;
long long right = 15;
Expected output:
long long expected = 5;
Input:
long left = 10;
long right = 15;
Expected output:
long expected = 5;
Explanation
Only 11 has equal neighboring digits. The other five numbers qualify.
Input:
left = 0
right = 9
Expected output:
expected = 10
Input:
long long left = 0;
long long right = 9;
Expected output:
long long expected = 10;
Input:
long left = 0;
long right = 9;
Expected output:
long expected = 10;
Explanation
All ten values have just one digit and therefore no equal neighbors.
References
This challenge is adapted for CodeUtility. Follow the statement and constraints above.