最大的交换
https://www.lintcode.com/problem/1095/?utm_source=sc-libao-ql
输入: 2736输出: 7236解释: 交换数字2和数字7.输入: 9973输出: 9973解释: 不用交换.int_list= list(map(int,str(num))
res = int(''.join(map(int,int_list)))class Solution:
"""
@param num: a non-negative intege
@return: the maximum valued number
"""
def maximum_swap(self, num: int) -> int:
# Write your code here
digits = list(map(int, str(num)))
bucket = {x:i for i,x in enumerate(digits)}
n = len(digits)
for i in range(n):
for j in range(9, digits[i],-1):
if j in bucket and bucket[j] > i:
digits[i], digits[bucket[j]] = digits[bucket[j]], digits[i]
return int(''.join(map(str,digits)))
return num
Last updated