2566. Maximum Difference by Remapping a Digit
https://leetcode.com/problems/maximum-difference-by-remapping-a-digit
給定一個整數,
Danny可以將整數中出現的其中一種數字換成0到9的其中一種數字,
所有相同的數字都會被改變,
但也可以選擇不改變任何數字,
返回最大可能值與最小可能值之差
思路:
最大可能值一定是將首位數改成9,
如果首位數已經是9,
則往低位數檢查,
直到碰到不是9的數字時就把它改成9,
如果全是9則不修改
最小可能值則必定是將首位數改成0,
利用Python的replace函數可以輕易地修改字串中的特定字符
--
Python Code:
class Solution:
def minMaxDifference(self, num: int) -> int:
s = str(num)
for c in s:
if c != '9':
mx = int(s.replace(c, '9'))
break
else:
mx = num
mn = int(s.replace(s[0], '0'))
return mx - mn
--
https://i.imgur.com/AhNjoAu.jpeg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.155.52 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1749908571.A.521.html