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