倒叙排序,交换不在当前位置的值,如果有多个值交换最右侧的因为求的是最大数
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @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 ""