牛客網上有個數串的題目:
給你若干個正整數,如:12 34 3
將他們組合在一起構成最大整數,如:34312
因為這幾個整數在輸入時以空格分開,經過numstr = raw_input()讀進去後是字串
numlist = numstr.split() #切割成列表
設兩個整數為a,b;若ab>ba,則a在前b在後;反之b在前a在後:
通過這種判斷來完成numlist裡面的排序
1.可以寫個氣泡排序函式
2,利用sort函式:
numlist.sort(cmp)
預設情況下,cmp是將numlist中相鄰兩個元素大小做比較,若返回正值,則交換兩個元素位置,反之不交換位置。直到返回值不再發生變化。
這裡我們所需要的比較方法不同於預設情況:所以要自己定義cmp函式:
def newcmp(x,y):#這裡x,y均為字串,從大往小排列
if int(x +y) > int(y+x):
return -1
return 1
然後numlist(newcmp)即可完後排序
最後print int(''.join(numlist))
python 自定義排序
我們都知道python中有兩種排序的方法,原地排序的x.sort 和不改變原列表有返回值的sorted x 自定義排序函式 先不關心其實原地排序還是有返回值的排序,研究其內部的排序原理,其內部是根據什麼排序的呢,預設的排序方法是內建的cmp函式 對於cmp x,y 如果想要x排在y前面那麼返回乙個負...
python 自定義排序函式
自定義排序函式 python內建的 sorted 函式可對list進行排序 sorted 36,5,12,9,21 5,9,12,21,36 但 sorted 也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x,y,如果 x 應該排在 y 的前面,返...
python 自定義內建方法
定義乙個新型別的元組,對於傳入的可迭代物件,我們只保留int型別且值大於0的元素。python中有內建的元組型別,tuple型別。自己也可以自定義乙個方法型別,class inttuple tuple 重寫父類的構造方法 def init self,iterable iterable裡面的元素 為整...