题目描述
输入一个字符串,打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。
思路:dfs
定义一个set保持在当前位置已经访问过的字符
class Solution:
def Permutation(self, s):
def bfs(visited, unvisited):
if len(unvisited) == 0:
res.append(visited)
return
d = set()
for i, x in enumerate(unvisited):
if x not in d:
d.add(x)
bfs(visited+x, unvisited[:i]+unvisited[i+1:])
res = []
bfs('', s)
return res
print(Solution().Permutation('aab')) 
京公网安备 11010502036488号