-
-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy path2566-maximum-difference-by-remapping-a-digit.py
More file actions
40 lines (34 loc) · 1007 Bytes
/
2566-maximum-difference-by-remapping-a-digit.py
File metadata and controls
40 lines (34 loc) · 1007 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# time complexity: O(n)
# space complexity: O(n)
class Solution:
def minMaxDifference(self, num: int) -> int:
maxNumList = [c for c in str(num)]
minNumList = [c for c in str(num)]
maxFind = False
minFind = False
maxNum = ''
minNum = ''
for i in range(len(maxNumList)):
if maxNumList[i] != '9' and not maxFind:
maxNum = maxNumList[i]
maxFind = True
if maxFind and maxNumList[i] == maxNum:
maxNumList[i] = '9'
if minNumList[i] != '0' and not minFind:
minNum = minNumList[i]
minFind = True
if minFind and minNumList[i] == minNum:
minNumList[i] = '0'
maxNum = int(''.join(maxNumList))
minNum = int(''.join(minNumList))
return maxNum - minNum
'''
1 -> 9
99899
1 -> 0
00890
'''
num = 11891
print(Solution().minMaxDifference(num))
num = 90
print(Solution().minMaxDifference(num))