python 字符串排列dfs
字符串的排列
http://www.nowcoder.com/questionTerminal/fe6b651b66ae47d7acce78ffdd9a96c7
题目描述
输入一个字符串,打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。
思路: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'))