algorithms

Algorithm implementations
git clone git://git.laack.co/algorithms.git
Log | Files | Refs | README

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)