60. Permutation Sequence

# Medium

class Solution:
    def helper(self, nums, level, result, k):
        if len(level) == len(nums):
            result.append(level)
            return 
        
        for i in range(0, len(nums)):
            if nums[i] in level:
                continue
            level = level + nums[i]
            self.helper(nums, level, result)
            level = level[:-1]      
        
    def getPermutation(self, n: int, k: int) -> str:
        # edge case
        result = []
        level = ''
        nums = ''
        for i in range(0, n):
            nums = nums + str(i+1)

        if len(nums) <= 1 or n == 1:
            return nums
        
        # regular case
        self.helper(nums, level, result, k)
        return result[k-1]

Last updated

Was this helpful?