a225: 明明愛排列
這篇教學會示範 ZeroJudge 基礎題庫「a225: 明明愛排列」的解題過程。
題目需求
題目會提供一些數字,先將數字按照「個位數」由小到大排列,排列後如果數字個位數相同,再將相同的數字「由大到小」排列。
題目連結:a225: 明明愛排列
解答
這題的思考方向要與題目相反,先使用 sort(reverse=True) 方法由大到小排序,接著再使用 lambda 匿名函式,根據餘數做小到大的排序,如此一來就不會影響單純數字由大到小的排序 ( 針對餘數相同的狀況,仍然是由大到小 )。
while True:
try:
nums = [int(i) for i in input().split(' ')] # 將輸入的字串轉換成數字串列
nums.sort(reverse=True) # 先將串列由大到小排序
nums.sort(key=lambda s: s%10) # 使用 lambda 匿名函式,根據除以 10 的餘數由小到大排列
print(*nums) # 使用 *args 運算子打散串列並輸出
except:
break
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~