Python 中的最大交换
pythonserver side programmingprogramming更新于 2025/11/4 1:16:17
假设我们有一个非负整数;我们最多可以交换两个数字一次以获得最大值。我们必须返回我们可以得到的最大值。因此,如果输入是 2736,则输出将是 7236。所以这里我们交换 2 和 7。
为了解决这个问题,我们将遵循以下步骤 −
- num := 从数字中截取每个数字,并创建一个列表
- num1 := 按相反顺序对数字进行排序
- index := 0
- while index < num 的长度
- 如果 num1[index] 与 num[index] 不同
- a := num 的子数组,从索引 (index + 1) 到结束
- 反转 a
- a := a 的长度 – a 的 num[index] 的索引 + index + 1 – 1
- num[index], num[a] := num[a], num[index]
- 中断循环
- 将索引增加 1
- 如果 num1[index] 与 num[index] 不同
- 连接 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

