倒叙排序,交换不在当前位置的值,如果有多个值交换最右侧的因为求的是最大数

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num string字符串 
# @return string字符串
#
class Solution:
    def maximumSwap(self , num: str) -> str:
        # write code here
        num = list(num)
        num_sorted = sorted(num, reverse=True)
        if num == num_sorted: return "".join(num)
        i = 0
        while i < len(num):
            if num[i] != num_sorted[i]:
                idx = num[i + 1:][::-1].index(num_sorted[i])
                num[i], num[-(idx + 1)] = num[-(idx + 1)], num[i]
                return "".join(num)
            i += 1
        return ""