题目分析:因为只交换一次,所以从高位开始,有比高位大且是高位之后最大的,就交换
class Solution:
def maximumSwap(self, num):
A = map(int, str(num))
A = list(A)
last = {x: i for i, x in enumerate(A)}
print(last)
for i, x in enumerate(A):
print(i, x)
for d in range(9, x, -1):
if last.get(d, -1) > i:
A[i], A[last[d]] = A[last[d]], A[i]
return int("".join(map(str, A)))
return num