输入一个字符串,打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。
示例:
输入:s = "abc"
输出:["abc","acb","bac","bca","cab","cba"]
限制:
1 <= s 的长度 <= 8
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* @param {string} s
* @return {string[]}
*/
var permutation = function(s) {
let res = new Set();
let visit = {};
let backtrack = (res, temp, index) => {
for(let i = 0; i < s.length; i++) {
if (temp.length == s.length) {
res.add(temp);
return
}
if (visit[i]) {
continue
}
visit[i] = true
backtrack(res, temp+s[i], i);
visit[i] = false
}
}
backtrack(res, '', 0);
// console.log(res)
return [...res];
};