unique-three-digit-even-number.py (815B)
1 class Solution: 2 def recurse(self, num_dict, depth, even_sel, has_num): 3 if depth == 3: 4 if even_sel: 5 return 1 6 return 0 7 summed = 0 8 for num in num_dict: 9 count = num_dict[num] 10 if count == 0: 11 continue 12 if not has_num and num == 0: 13 continue 14 num_dict[num] -= 1 15 summed += self.recurse(num_dict, depth + 1, num%2==0, True) 16 num_dict[num] += 1 17 return summed 18 19 def totalNumbers(self, digits: List[int]) -> int: 20 num_dict = {} 21 for num in digits: 22 if num_dict.get(num) is None: 23 num_dict[num] = 1 24 else: 25 num_dict[num] += 1 26 return self.recurse(num_dict, 0, False, False)