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)
  • 相关阅读:
    mysql select 练习题
    mysql常用函数
    创建后表的修改:添加列+修改列+删除列+重命名表+删除整张表+删除整个数据库
    数据库里any 和 all 的区别
    mysql 高级查询
    9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点
    9.11知识大纲【列表拓展】【格式与布局】
    9.10
    9.9
    9.8
  • 原文地址:https://www.cnblogs.com/seyjs/p/13040510.html
Copyright © 2011-2022 走看看