|
发表于 2022-12-21 20:06:08
|
显示全部楼层
python
2783915460
Time:0.0s
- '''
- 题目:
- 排列是一个物体的有序安排。例如 3124 是 1, 2, 3, 4 的一种排列。
- 如果所有的排列按照数值或者字母序排序,我们称其为一个字典序。0, 1, 2 的字典排列有:
- 012 021 102 120 201 210
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 的第 100 万个字典排列是什么?
- '''
- import time
- tt=time.time()
- num=1000000
- a='0, 1, 2, 3, 4, 5, 6, 7, 8, 9'
- a=a.split(", ")
- n=len(a)
- # num0=num-1
- # nn=1
- # for i in range(1,n+1):
- # nn=nn*i
- # l=[]
- # for i in range(n,0,-1):
- # nn=nn//i
- # l.append(num0//nn)
- # num0=num0%nn
- # print(l)
- num0=num-1
- l=[]
- for i in range(1,n+1):
- l.append(num0%i)
- num0=num0//i
- l=l[-1::-1]
- print(l)
- b=[]
- for i in l:
- b.append(a.pop(i))
- print("".join(b))
- print('Time:{}s'.format(time.time()-tt))
复制代码
最后一个for循环感觉不是很优雅。列表的pop(i)消耗比较大,但我想不出更好的办法 |
|