zoukankan      html  css  js  c++  java
  • 【leetcode】1432. Max Difference You Can Get From Changing an Integer

    题目如下:

    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

    解题思路:最大值很好求,把第一个不是9的数字替换成9即可。最小值分两种情况,如果最高位不为1,那么替换成1;否则,找出第一个不为0的数字替换成0。

    代码如下:

    class Solution(object):
        def maxDiff(self, num):
            """
            :type num: int
            :rtype: int
            """
            str_num = str(num)
            max_replace = '9'
            min_replace = '0'
            for i in str_num:
                if i != '9':
                    max_replace = i
                    break
    
            replace_val = '0'
            if str_num[0] != '1':
                min_replace = str_num[0]
                replace_val = '1'
            else:
                for i in str_num:
                    if i != '0' and i != str_num[0]:
                        min_replace = i
                        break
    
            max_num = str_num.replace(max_replace,'9')
            min_num = str_num.replace(min_replace,replace_val)
            return int(max_num) - int(min_num)
  • 相关阅读:
    注意!!Java-File类
    Hello boke!
    Python 知识要点:变量 可变和不可变
    Python 知识要点:变量及引用
    Python 知识要点:名片管理系统 2.0
    java中x^=y^=x^=y交换整形数据Bug
    servlet读取WEB-INF下txt文件的方法
    设置 load-on-startup 时出错:cvc-complex-type.2.4.a Invalid content was found starting with element 'load
    MyEclipse上访问servlet显示404的问题
    The tomcat server configuration at ServersMyEclipse Tomcat v7.0-config is missinng解决方案
  • 原文地址:https://www.cnblogs.com/seyjs/p/13040510.html
Copyright © 2011-2022 走看看