06. How Many X's?
The problem can be found at the following link: Question Link
My Approach
Simply go with the flow of question.
I iterate through the numbers in the given range (
L
toR
). For each number,I count the occurrences of the digit
X
by using thecntX
function.The function divides the number by 10 in each iteration and checks if the last digit is equal to
X
. If it is, I increment the count.
Time and Auxiliary Space Complexity
Time Complexity :
O((R-L) * log(R))
, wherelog(R)
is the number of digits in R.Auxiliary Space Complexity:
O(1)
, as no extra space is used.
Code (C++)
class Solution {
public:
void cntX(int n, int& X, int& cnt){
while(n){
if(n % 10 == X)
++cnt;
n /= 10;
}
}
int countX(int L, int R, int X) {
int cnt = 0;
for(int i = L + 1; i < R; i++)
cntX(i, X, cnt);
return cnt;
}
};
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the getlost01/gfg-potd repository.
Last updated
Was this helpful?