题目:
解题方法
1.将整数转换成列表
2.从列表第一个数开始,每取出一次,找出列表余下数据(列表list1)的最大值,若取出的值小于list1的最大值,说明需要进行置换,置换处理:
3.置换后将原列表转换为整数
代码
class Solution(object):
def maximumSwap(self, num):
"""
:type num: int
:rtype: int
"""
#将整数转换成列表
s = [int(i) for i in str(num)]
nums = len(s)
for i in range(nums-1):
list1 = s[i+1:]
maxNum = max(list1)
if s[i]<maxNum :
counts = list1.count(maxNum)
count1 =0
#找出最大值在原列表的位置
for j in range(len(list1)):
if list1[j] ==maxNum:
count1+=1
if count1 == counts:
sition = j+i+1
break
#置换
s[i],s[sition] =s[sition],s[i]
break
#列表元素转换为字符串
s = map(str,s)
# nums = int("".join(s))
nums = ''
for i in s:
nums+=i
return int(nums)