-
Notifications
You must be signed in to change notification settings - Fork 508
Open
Description
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
Labels
No labels