Skip to content

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

@Silencesnow

Description

@Silencesnow
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"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions