剑指Offer 38 字符串的排列

字符串的排列

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     def backTrack(self,ss,k,result,temp,n):
 4         if k >= n:
 5             result.add(''.join(temp[:]))
 6             return
 7         for i in range(len(ss)):
 8             temp.append(ss[i])
 9             self.backTrack(ss[:i]+ss[i+1:],k+1,result,temp,n)
10             temp.pop(-1)
11         
12     def Permutation(self, ss):
13         n = len(ss)
14         if n == 0:
15             return []
16         result = set()
17         temp = []
18         self.backTrack(ss,0,result,temp,n)
19         return list(sorted(result))
20         # write code here

 

你可能感兴趣的:(剑指Offer 38 字符串的排列)