|
发表于 2019-12-5 00:20:03
|
显示全部楼层
本帖最后由 hrp 于 2019-12-5 18:59 编辑
- def func284(testlist):
- list1, list2, list3 = [], [], []
- for i in testlist:
- list1.append(len(str(i)))
- maxlength = max(list1)
- list1.clear()
- for i in testlist:
- list1.append(f'{i:{chr(0)}<{maxlength}}')
- list1.sort(reverse=True)
- for i in list1:
- list2.append(i.replace(chr(0), ''))
- num = len(list2)
- maxnum = 1
- while num:
- maxnum *= num
- num -= 1
- while maxnum:
- list3.append(''.join(str(i) for i in list2))
- for i in range(len(list2) - 1):
- if int(list2[i] + list2[i + 1]) < int(list2[i + 1] + list2[i]):
- list2[i], list2[i + 1] = list2[i + 1], list2[i]
- list3.append(''.join(str(i) for i in list2))
- maxnum -= 1
- return int(max(list3))
- #testlist = [1, 20, 23, 4, 8] # 8,4,23,20,1
- #testlist = [4, 6, 65] # 6,65,4
- #testlist = [262,242,29,2822,282] # 29,282,2822,262,242
- #testlist = [856, 22, 222, 2221, 2223] # 856,2223,222,22,2221
- testlist = [650, 580, 66, 9, 661, 66105, 59] # 9,66,661,66105,650,59,580
- print(func284(testlist))
复制代码
|
评分
-
查看全部评分
|