Python的最大交换
假设我们有一个非负整数;我们最多可以交换两个数字一次以获得最大值。我们必须返回我们可以获得的最大值。因此,如果输入像2736,那么输出将是7236。所以这里我们交换2和7。
为了解决这个问题,我们将遵循以下步骤-
num:=从数字中切出每个数字,然后列出
num1:=以相反的顺序对num进行排序
索引:=0
而索引<num的长度
一个:=num子数组,从索引(index+1)到结尾
反转一个
a:=a的长度–a索引的num[index]的索引++1–1
num[index],num[a]:=num[a],num[index]
打破循环
如果num1[index]与num[index]不同
指数增加1
结合num中存在的数字并将其设为整数
返回结果。
示例(Python)
让我们看下面的实现以更好地理解-
class Solution: def maximumSwap(self, num): num = list(map(int,list(str(num)))) num1 = sorted(num,reverse=True) index=0 while index<len(num): if num1[index]!=num[index]: a = num[index+1:] a.reverse() a=len(a) - a.index(num1[index])+index+1 -1 num[index],num[a] = num[a],num[index] break index+=1 return int("".join(str(x) for x in num)) ob1 = Solution()print(ob1.maximumSwap(5397))
输入值
5397
输出结果
9357