The set [1,2,3,…,n]
contains a total of n! unique permutations.
By listing and labeling all of the permutations in order,
We get the following sequence (ie, for n = 3):
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive.
class Solution(object):
def getPermutation(self, n, k):
res = ''
nums = [0] * n
for i in xrange(n):
nums[i] = i + 1
while k > 1:
f = math.factorial(n-1)
if k % f == 0:
k -= 1
pos = k/f
res += str(nums[pos])
del(nums[pos])
nums = nums[::-1]
break
#print k,f,k/f
pos = k/f
res += str(nums[pos])
del(nums[pos])
k %= f
n -= 1
for i in nums:
res += str(i)
return res