670. 最大交换

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。

示例 1 :

输入: 2736
输出: 7236
解释: 交换数字2和数字7。

示例 2 :

输入: 9973
输出: 9973
解释: 不需要交换。

注意:

  1. 给定数字的范围是 [0, 108]
class Solution(object):
    def maximumSwap(self, num):
        """
        :type num: int
        :rtype: int
        """ 
        k=[]
        l=list(str(num))
        for j in range(len(l)):
            k.append(max(l[j:]))
        #print(k) ['7', '7', '6', '6']
        p=len(l)
        for i in range(p):
            if l[i]<k[i]:
                m=l[::-1]
                print(type(m))
                n=m.index(k[i])
                l[i],l[p-n-1]=l[p-n-1],l[i]
                break;
        return int(''.join(l))

猜你喜欢

转载自blog.csdn.net/ch1209498273/article/details/81638937