由于对于整数num的十进制数字位长最长为8位,任意两个数字交换最多有28种不同的交换方法,因此我们可以尝试遍历所有可能的数字交换方法即可,并找到交换后的最大数字即可。
class Solution:
def maximumSwap(self, num: int) -> int:
ans = num
s = list(str(num))
for i in range(len(s)):
for j in range(i):
s[i],s[j] = s[j],s[i]
ans = max(ans,int(''.join(s)))
s[i],s[j] = s[j], s[i]
return ans