179. 最大數(shù)
這一題的關(guān)鍵是對字符串進(jìn)行排序蚓庭。但是如果使用默認(rèn)的排序方法,答案不是我們想要的器赞。比如30和3,我們需要的排序是3排在30的前面港柜,而默認(rèn)的排序方法時3排在30后面。因此我們需要自定義排序算法的key夏醉。仔細(xì)看下代碼:
class Solution:
def largestNumber(self, nums):
# 要自定義排序的key的話,需要導(dǎo)入cmp_to_key方法
from functools import cmp_to_key
string = list(map(str,nums))
def mysort(x,y):
return int(x+y)-int(y+x)
# 注意這里如何自定義一個key
string.sort(key=cmp_to_key(mysort))
ans = ''
while string:
ans = ans + string[-1]
string.pop()
# 注意這里的lstrip用法畔柔,這一步是為了消除ans前面有0的情況
ans = ans.lstrip('0')
if not ans:
ans = '0'
return ans
python strip()方法:
用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。
語法:
str.strip([chars]);
其中chars為移除字符串頭尾指定的字符序列腮考。
返回值為移除字符串頭尾指定的字符生成的新字符串
python lstrip()方法 rstrip() 方法:
Python lstrip() 方法用于截掉字符串左邊的空格或指定字符。Python rstrip() 刪除 string 字符串末尾的指定字符(默認(rèn)為空格)踩蔚。它們語法與strip相同。
關(guān)鍵詞:strip馅闽,key馍迄,排序,lstrip柬姚,rstrip