179. 最大數(shù)

179. 最大數(shù)

這一題的關(guān)鍵是對(duì)字符串進(jìn)行排序。但是如果使用默認(rèn)的排序方法,答案不是我們想要的。比如30和3,我們需要的排序是3排在30的前面,而默認(rèn)的排序方法時(shí)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)

        # 注意這里如何自定義一個(gè)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)為空格或換行符)或字符序列。
語(yǔ)法:

str.strip([chars]);

其中chars為移除字符串頭尾指定的字符序列。
返回值為移除字符串頭尾指定的字符生成的新字符串

python lstrip()方法 rstrip() 方法:
Python lstrip() 方法用于截掉字符串左邊的空格或指定字符。Python rstrip() 刪除 string 字符串末尾的指定字符(默認(rèn)為空格)。它們語(yǔ)法與strip相同。

關(guān)鍵詞:strip,key,排序,lstrip,rstrip

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容