1、问题描述:给定一个字符串,输出该字符串所有排列的可能。如输入“abc”,输出“abc,acb,bca,bac,cab,cba”。
function permutate(str) {
let result = [];
if (str.length > 1) {
let [left, ...rest] = str
let preResult = permutate(rest)
for (let i = 0; i < preResult.length; i++) {
for (let j = 0; j < preResult[i].length + 1; j++) {
let tmp = preResult[i].slice(0, j) + left + preResult[i].slice(j, preResult[i].length);
result.push(tmp);
}
}
} else {
return [str]
}
return result
}
console.log(permutate('abc'))
网友评论