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
微信扫码关注
抖音扫码关注