# Leetcode 1432. Max Difference You Can Get From Changing an Integer 選擇一個數字x (0 <= x <= 9),將num中出現的所有x更換為y (0 <= y <= 9),x可以等於y,更換後數字不可以有前導0,重複兩次分別得到結果a跟b,找到一組a跟b使其差距為最大的。 ## 想法 ### 分析法 要找到最大的數字很簡單,只要重頭開始找到最高位不是9的數字,將那數字更改為9即可。 要找到最小的數字比較複雜一點,因為需要避免前導0,所以會有以下想法 (1)如果第一位非1則將其代表數字皆變成1即為最小 (2)從第二位開始,如果數字不為0且其值不同於第一位,則將其代表數字改為0即為最小 最大-最小 即為答案 程式碼: ``` def maxDiff(self, num: int) -> int: tag = str(num) for i in range(len(tag)): if(tag[i]!="9"): tag = tag.replace(tag[i],"9") break tag1 = str(num) if(tag1[0]!="1"): tag1 = tag1.replace(tag1[0],"1") else: for i in range(1,len(tag1)): if(tag1[0]!=tag1[i] and tag1[i]!="0"): tag1 = tag1.replace(tag1[i],"0") break return int(tag) - int(tag1) ```