【题目】
【示例】
输入字符串abc,则打印出a,b,c所能排列出的所有字符串abc,acb,bac,bca,cab,cba
【思路】
回溯法
一条道走到黑完了再退回一步,再走到黑,然后再退回一步,然后退回两步,循环进行
时间复杂度是 O(n!)
深度优先搜索
【解法】
var permutation = function (s) {const res = new Set();const visit = {};function dfs(path) {if (path.length === s.length) return res.add(path);for (let i = 0; i < s.length; i++) {if (visit[i]) { continue; }visit[i] = true;dfs(path + s[i]);visit[i] = false;}}dfs('');return [...res];}
