您的位置:首页 > 产品设计 > UI/UE

leetcode之Permutation Sequence

2016-01-01 21:45 579 查看
这题的主要考点在于阶乘,排列是有序的之后,可以按照阶乘来逐步的求出每个数字。代码如下:
class Solution(object):
def getPermutation(self, n, k):
"""
:type n: int
:type k: int
:rtype: str
"""
from math import factorial
a = []
for i in range(n):
a.append(str(i + 1))
b = []
while k > 0:
changer = k / factorial(n - 1)
k = k % factorial(n - 1)
if k == 0:
b.append(a[changer - 1])
del a[changer - 1]
return ''.join(b) + ''.join(a)[::-1]
else:
b.append(a[changer])
del a[changer]
n = n - 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息