leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

max-diff.py (1157B)


      1 class Solution:
      2     def minMaxDifference(self, num: int) -> int:
      3 
      4         num_ls = []
      5         while num > 0:
      6             lsb = num % 10
      7             num = num // 10
      8             num_ls.append(lsb)
      9 
     10         num_ls.reverse()
     11         num_ls_min = num_ls.copy()
     12 
     13         # min = setting msb to 0 (since int, no leading 0's)
     14 
     15         val_to_map = num_ls[0]
     16 
     17         for i in range(0, len(num_ls)):
     18             if num_ls[i] == val_to_map:
     19                 num_ls_min[i] = 0
     20 
     21         # max = setting max non 9 value to be = 9 (or leaving as is when all 9's)
     22 
     23         num_ls_max = num_ls.copy()
     24         digit_to_change = 9
     25 
     26         for i in range(0, len(num_ls_max)):
     27             if num_ls_max[i] != 9:
     28                 digit_to_change = num_ls_max[i]
     29                 break
     30 
     31         for i in range(0, len(num_ls_max)):
     32             if num_ls_max[i] == digit_to_change:
     33                 num_ls_max[i] = 9
     34 
     35         max_val = to_int(num_ls_max)
     36         min_val = to_int(num_ls_min)
     37 
     38         return max_val - min_val
     39 
     40 
     41 def to_int(num_ls) -> int:
     42     num = 0
     43     for i in range(len(num_ls) - 1, -1, -1):
     44         num += num_ls[i] * 10 ** ((len(num_ls) - 1) - i)
     45     return num