美文网首页
1095.最大的交换

1095.最大的交换

作者: 八菜冰 | 来源:发表于2018-12-18 00:13 被阅读0次
    • Description
      给定一个非负整数,你可以交换两个数位至多一次来获得最大的合法的数。返回最大的合法的你能够获得的数。
    • Samples:
      输入: 9973
      输出: 9973
      解释: 不用交换.
      输入: 2736
      输出: 7236
      解释: 交换数字2和数字7.
    • Solution
      先将数的每一位转换为数组,再设置2个参考点From、To,判断是否能交换,再输出。
    class Solution:
        """
        @param num: a non-negative intege
        @return: the maximum valued number
        """
        def maximumSwap(self, num):
            # Write your code here
            if num<=10:
                return num
            nums = []
            if num==0:
                nums.append(0)
            while num!=0:
                nums.append(num%10)
                num = num//10
            From,Max = 0, nums[0]
            To, Max_index = 0, 0
            for i in range(1,len(nums)):
                if Max < nums[i]:
                    Max = nums[i]
                    Max_index = i
                elif Max > nums[i]:
                    From = Max_index
                    To = i
            if To!=0:
                nums[From],nums[To] = nums[To],nums[From]
            res = 0
            for k in range(len(nums)):
                res = res + nums[k]*10**k
            return res
    #        return nums
    

    相关文章

      网友评论

          本文标题:1095.最大的交换

          本文链接:https://www.haomeiwen.com/subject/hpnhkqtx.html