菜鸡版:
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
学习:
发现大佬们的思路和我的大同小异,主要在思路。