leetcode1432.改变一个整数能得到的最大差值

菜鸡版:

class Solution(object):
    def maxDiff(self, num):
        """
        :type num: int
        :rtype: int
        """
        # 要得到最小值,如果第一位不是1,那么就把第一位换成1。如果是1,从第二位开始检查,把最高位非0且非1的数字都替换为0,判断是否为0,如果为0,则替换为1 
        # 要得到最大值,把最高位的数变成9
        str_num=str(num)
        min_num=num
        if(str_num[0]=='1'):
            for i in range(1,len(str_num)):
                if(str_num[i]!='0' and str_num[i]!='1'):
                    replace_min=str_num.replace(str_num[i],'0')
                    # 把num里面的所有数字为list_num[i]的位置替换成1
                    min_num=int(replace_min)
                    if(min_num!=0):
                        break
                    else:
                        replace_min=str_num.replace(str_num[i],'1')
                        min_num=int(replace_min)
                        break
        else:
            replace_min=str_num.replace(str_num[0],'1')
            # 把num里面的所有数字为list_num[i]的位置替换成1
            min_num=int(replace_min)
        max_num=num
        for i in range(len(str_num)):
            if(str_num[i]!='9'):
                replace_min=str_num.replace(str_num[i],'9')
                # 把num里面的所有数字为list_num[i]的位置替换成9
                max_num=int(replace_min)
                break
        diff=max_num-min_num
        return diff

学习:
发现大佬们的思路和我的大同小异,主要在思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值