DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

Count Numbers with Unique Digits

Given an integer n, return the count of all numbers with unique digits, x, where 0 <= x < 10n.

Example 1:

Input: n = 2
Output: 91
Explanation: The answer should be the total numbers in the range of 0 ≤ x < 100, excluding 11,22,33,44,55,66,77,88,99

Example 2:

Input: n = 0
Output: 1

Constraints:

  • 0 <= n <= 8

SOLUTION:

class Solution:
    def countUnique(self, n, used, first):
        if n == 0:
            return 0
        ctr = 0
        beg = 0
        if first:
            beg = 1
        for i in range(beg, 10):
            if i not in used:
                ctr += 1 + self.countUnique(n - 1, used.union({i}), False)
        return ctr

    def countNumbersWithUniqueDigits(self, n: int) -> int:
        return self.countUnique(n, set(), True) + 1
Enter fullscreen mode Exit fullscreen mode

Top comments (0)