1日1つのリートコード-670。最大交換

ここに画像の説明を挿入

class Solution(object):
    def maximumSwap(self, num):
        """
        :type num: int
        :rtype: int
        """
        l = list(map(int,str(num)))
        # 降序列表
        l_reverse = sorted(l,reverse=True)
        if l == l_reverse:
            return num
        for i in range(len(l)-1):
            if(l[i]<l[i+1]):
                max_inx = i
                max_value = l[i]
                for k in range(len(l[i:])):
                    if(l[i+k]>=max_value):
                        max_value = l[i+k]
                        new_index = i + k
                # print(max_value,new_index)
                for j in range(len(l)):
                    if(l[j]<max_value):
                        print(l[j],max_value)
                        temp = l[j]
                        l[j] = max_value
                        l[new_index] = temp
                        break
                break
        
        ans_str = [str(i) for i in l]
        ans_concat = "".join(ans_str)
        return int(ans_concat)
    
        
        

        

おすすめ

転載: blog.csdn.net/weixin_41041275/article/details/112801433