awesome-coding-js icon indicating copy to clipboard operation
awesome-coding-js copied to clipboard

字符串的排列【其他解法】

Open Silencesnow opened this issue 5 years ago • 0 comments

function Permutation(str) {
    const queue = str.split('');
    queue.sort();
    return PermutationCore(queue);
}


function PermutationCore(queue) {
    let result = [];
    if (queue.length === 1) {
        return queue;
    }
    queue.forEach((item, index) => {
        const newArr = queue.slice(0);
        newArr.splice(index, 1);
        const newArray = PermutationCore(newArr).map(i => (item + i));
        result = result.concat(newArray);
    });

    return result;
}


console.log(Permutation('abc')); // ["abc", "acb", "bac", "bca", "cab", "cba"]

Silencesnow avatar Mar 04 '20 03:03 Silencesnow