Python 中的最大值交换
假设我们有一个非负整数;我们可以交换两位数字,至多一次,以获得最大值。我们必须返回我们能获得的最大值。因此,如果输入类似于 2736,则输出将是 7236。因此,在这里我们交换 2 和 7。
为了解决此问题,我们将按照以下步骤进行:
- num:从数字中提取每个数字,然后生成一个列表
- num1:按降序对 num 进行排序
- index:0
- 在 index < num 的长度时
- 如果 num1[index] 与 num[index] 不同
- a:从 index(index + 1)到结束的 num 子数组
- 反转 a
- a:a 的 a - num[index] 的 index 的长度 + index + 1 - 1
- num[index],num[a]:num[a],num[index]
- break 循环
- 将 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP