这题的主要考点在于阶乘,排列是有序的之后,可以按照阶乘来逐步的求出每个数字。代码如下:
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