class Solution:
def maximum69Number (self, num: int) -> int:
num2 = num
for e in range(3, -1, -1):
ele = 10**e
if num2 // ele == 6:
return (num+3*ele)
num2 = num2 % ele
return num
思路
因为提议范围在 10000 以下,所以可以用 1000,100,10,1分别整除(下一次整除,需要去掉最高位),看哪一次出现了6
出现了,就分别加3000,300,30,3
range
一开始怎么整都不出结果,最后发现,在 for range 语句中,写的 range(3, 0)
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
默认步长是1,所以应该改成 -1
同时,3,0只能遍历321,应该写成 range(3,-1,-1)