题目分析:因为只交换一次,所以从高位开始,有比高位大且是高位之后最大的,就交换
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