第壹個數字越大,應該越低。畢竟4XXX比3XXX大。
setp?1:?[0][1][2]
321
32
三
四
排名第壹?0?列,行越大,越靠後。
ret?=?[?,,,?4]
setp?2:?[0][1][2]
321
32
3?& lt3 & gt?& lt-?補位?3、因為?3?是壹樣的嗎?3?組的第壹個元素。
排名第壹?1?列,行越大,越靠後。
ret?=?[?,,?3,?4]
setp?3:?[0][1][2]
321
32?& lt3 & gt& lt-?補位?3、因為?3?是壹樣的嗎?3?組的第壹個元素。
排名第壹?2?列,行越大,越靠後。323?比?321?很大,所以...
ret?=?[?,?32,?3,?4]
只剩下壹個了,這是最重要的:
ret?=?[321,?32,?3,?這是基本的想法。總而言之:
1.首先按[0]列分組:
2.組中的每個數字都填充到相同的長度,然後進行排序。
完整代碼:
def?joinmin(ls):
團體?=?{}
為了什麽?物品?在?ls:
前綴?=?項目
n?=?0
什麽時候?前綴?& gt?10:
前綴?//=?10
n?+=?1
groups.setdefault(前綴,[]).追加([item,n])
排序鍵?=?列表(已排序(組))
ret?=?0
為了什麽?前綴?在?排序關鍵字:
物品?=?組[前綴]
max_n?=?max([t[1]?為了什麽?t?在?項目])
預排序_項目?=?[]
為了什麽?項,?item_n?在?項目:
填充?=?項目
n?=?項目_n
什麽時候?max_n?& gt?n:
填充?*=?10
填充?+=?前綴
n?+=?1
presort_items.append((填充,?項,?item_n))
為了什麽?_,?項,?n?在?已排序(預排序項目):
什麽時候?n?& gt?-1:
ret?*=?10
n?-=?1
ret?+=?項目
回歸?Ret為了妳沒回答,不過這種小話題還是挺有意思的。