Given three integers A, L, and R, the task is to count numbers from a range L to R which contains A as its suffix.
Input: A = 2, L = 2, R = 20
Only two possible numbers from the given range that satisfies the conditions are 2 and 12.
Input: A = 25, L = 25, R = 273
The three numbers from the given range that satisfies the conditions are 25, 125 and 225.
Naive Approach: The simplest approach to solve the problem is to traverse the numbers from the range L to R, and check if the number ends with A or not. For all numbers found to be true, increment the count of such numbers by 1. Finally, print the final count.
Time complexity: O(B)
Auxiliary Space: O(log2R)
Efficient Approach: To optimize the above approach, follow the steps below:
- Count and store the number of digits of A and store it in a variable, say, count.
- Raise 10 to the power of count of digits of A,i.e. 10count.
- Check for every cycle of 10count if it lies in the range [L, R]. If found to be true, then increment the count by 1.
- Print the final value of count.
Below is the implementation of the above approach:
Time Complexity: O(N), where N is the range.
Auxiliary Space: O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.