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 (
LtoR). For each number,I count the occurrences of the digit
Xby using thecntXfunction.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?