天天看點

[leetcode] 1432. Max Difference You Can Get From Changing an Integer

Description

You are given an integer num. You will apply the following steps exactly two times:

  • Pick a digit x (0 <= x <= 9).
  • Pick another digit y (0 <= y <= 9). The digit y can be equal to x.
  • Replace all the occurrences of x in the decimal representation of num by y.
  • The new integer cannot have any leading zeros, also the new integer cannot be 0.

Let a and b be the results of applying the operations to num the first and second times, respectively.

Return the max difference between a and b.

Example 1:

Input: num = 555
Output: 888
Explanation: The first time pick x = 5 and y = 9 and store the new integer in a.
The second time pick x = 5 and y = 1 and store the new integer in b.
We have now a = 999 and b = 111 and max difference = 888      

Example 2:

Input: num = 9
Output: 8
Explanation: The first time pick x = 9 and y = 9 and store the new integer in a.
The second time pick x = 9 and y = 1 and store the new integer in b.
We have now a = 9 and b = 1 and max difference = 8      

Example 3:

Input: num = 123456
Output: 820000      

Example 4:

Input: num = 10000
Output: 80000      

Example 5:

Input: num = 9288
Output: 8700      

Constraints:

  • 1 <= num <= 10^8

分析

題目的意思是:給定一個數字,然後替換其中的數字得道x,然後再替換該數字得到要,求x和y的最大差,替換後第一位不能為0,且整個數字不能為0.我的想法很簡單,把該數字變成字元串,替換其中的字元為9,周遊求出最大值。至于最小值,要考慮到替換的時候首字母為0的情況,如果出現這種情況,應該替換為1;排除首字母為0的情況,其他情況都可以替換成1,然後求出最小值。最後得到結果。

代碼

class Solution:
    def maxDiff(self, num: int) -> int:
        num=str(num)
        max_val=int(num)
        min_val=int(num)
        for i,ch in enumerate(num):
            t1=num
            t1=int(t1.replace(ch,'9'))
            max_val=max(max_val,t1)
            t2=num
            if(i!=0):
                t3=t2.replace(ch,'0')
                if(t3[0]=='0'):
                    t3=t2.replace(ch,'1')
                min_val=min(min_val,int(t3))
            elif(i==0):
                t2=t2.replace(ch,'1')
                min_val=min(min_val,int(t2))
        return max_val-min_val      

參考文獻