Learn how to implement an algorithm to print all the permutation of a string in javascript.

Permutation: Each of several possible ways in which a set or number of things can be ordered or arranged.

Example

Input: "AB" "ABC" Output: "AB" "BA" "ABC" "ACB" "BAC" "BCA" "CBA" "CAB"

Implementation

We are going to use the backtracking technique to print all the permutation of a string.

We will create a function which will print the permutation of the string if the first index and last index of string is equal.

If they are not equal then we will swap the characters of the string for each index and call the permute function recursively.

This way it will generate all the possible permutation and print them.

To swap the characters we will use another function.

This is how backtracking technique works for the string ‘ABC’.



let permute = (str, left = 0, right = str.length - 1) => { //If left index is equal to right index //Print the string permutation if(left == right){ console.log(str); }else{ for(let i = left; i <= right; i++){ //Swap the letters of the string str = swap(str, left, i); //Generate the permutation with swapped letters permute(str, left+1, right); //Restore the letters back to their position str = swap(str, left, i); } } } //Function to swap the letters of the string let swap = (str, left, right) => { let arr = str.split(''); [arr[left], arr[right]] = [arr[right], arr[left]]; return arr.join(''); }

Input: permute('AB'); permute('ABC'); Output: "AB" "BA" "ABC" "ACB" "BAC" "BCA" "CBA" "CAB"

Time complexity: O(n * n!).

Space complexity: O(n!).

Time and Space complexity