Given a number N, the task is to count the number of unique digits in the given number.
Input: N = 22342
The digits 3 and 4 occurs only once. Hence, the output is 2.
Input: N = 99677
The digit 6 occurs only once. Hence, the output is 1.
Naive Approach: By this approach, the problem can be solved using two nested loops. In the first loop, traverse from the first digit of the number to the last, one by one. Then for each digit in the first loop, run a second loop and search if this digit is present anywhere else as well in the number. If no, then increase the required count by 1. In the end, print the calculated required count.
Time Complexity: O(L2)
Auxiliary Space: O(1)
Efficient Approach: The idea is to use Hashing to store the frequency of the digits and then count the digits with a frequency equal to 1. Follow the steps below to solve the problem:
- Create a HashTable of size 10 for digits 0-9. Initially store each index as 0.
- Now for each digit of number N, increment the count of that index in the hashtable.
- Traverse the hashtable and count the indices that have value equal to 1.
- At the end, print/return this count.
Below is the implementation of the above approach:
Time Complexity: O(N), where N is the number of digits of the number.
Auxiliary Space: O(1)
Note: As the used hashtable is of size only 10, therefore its time and space complexity will be near to constant. Hence it is not counted in the above time and auxiliary space.
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.
- Find smallest number with given number of digits and sum of digits under given constraints
- Count of integers in a range which have even number of odd digits and odd number of even digits
- Numbers of Length N having digits A and B and whose sum of digits contain only digits A and B
- Minimum digits to be removed to make either all digits or alternating digits same
- Maximize the given number by replacing a segment of digits with the alternate digits given
- Find smallest number with given number of digits and sum of digits
- Find the Largest number with given number of digits and sum of digits
- Number of digits in the nth number made of given four digits
- Count numbers in given range such that sum of even digits is greater than sum of odd digits
- Count of numbers between range having only non-zero digits whose sum of digits is N and number is divisible by M
- Smallest number with given sum of digits and sum of square of digits
- Find the average of k digits from the beginning and l digits from the end of the given number
- Sum of the digits of square of the given number which has only 1's as its digits
- Number formed by deleting digits such that sum of the digits becomes even and the number odd
- Numbers having Unique (or Distinct) digits
- Print all numbers less than N with at-most 2 unique digits
- Count of numbers upto N digits formed using digits 0 to K-1 without any adjacent 0s
- Find smallest possible Number from a given large Number with same count of digits
- Max count of unique ratio/fraction pairs in given arrays
- Count of unique palindromic strings of length X from given string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.