本帖最后由 阴阳神万物主 于 2020-3-11 11:00 编辑
丧钟为谁而鸣?def solve(lst:'list of int',reverse:'是否大的在前'=False)->list:#这是一个动能越来越大的单摆。
def getn():#反正楼主从来没要求过顺序,于是我就放飞自我咯。
lst.sort()
m,n = divmod(len(lst),2)
l = lst[:m]
r = lst[m+n:]
if n:yield (lst[m],)
for a,b in zip(l[::-1],r):
yield (a,b)
res = []
for each in getn():
res.extend(list(each))
return res[::-1] if reverse else res
def solve_2(lst:'list of int')->list:#行数少,感觉会快的思路
lst.sort()
try:
lst[::2],lst[1::2] = lst[1::2],lst[::2]
except ValueError:
lst[:-1:2],lst[1::2] = lst[1::2],lst[:-1:2]
return lst
if __name__ == '__main__':
print('示例 输出:',solve([5, 3, 1, 2, 3]))
print('示例 输出:',solve_2([5, 3, 1, 2, 3]))
|