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.
Subscribe to see which companies asked this question
class Solution(object):
def getFactorial(self,n):
if n == 1:
self.factorial.append(1)
return 1
else:
temp = n*self.getFactorial(n-1)
self.factorial.append(temp)
return temp
def getPermutation(self, n, k):
"""
:type n: int
:type k: int
:rtype: str
"""
self.factorial = []
self.getFactorial(n)
str_list = []
int_list = range(1,n+1)
for f in self.factorial[:-1][::-1]:
str_list.append(str(int_list[(k - 1)/f]))
del int_list[(k - 1)/f]
k = k%f
str_list.append(str(int_list[0]))
return ''.join(str_list)