# strings rearrangement javascript

## Strings Rearrangement in JavaScript

String rearrangement is a common problem in computer programming where a string needs to be rearranged to form a new string that satisfies certain conditions. In JavaScript, there are several ways to rearrange strings and achieve the desired output.

### Method 1: Sorting the String

One of the simplest methods to rearrange a string is to sort it alphabetically. This can be done using the split(), sort(), and join() methods.


const str = "hello";
const sortedStr = str.split("").sort().join("");
console.log(sortedStr); // Output: ehllo


In the above code, the split() method splits the string into an array of characters, the sort() method sorts the array alphabetically, and the join() method joins the array back into a string.

### Method 2: Permutation Algorithm

Another way to rearrange a string is to use a permutation algorithm. A permutation algorithm generates all possible combinations of a given string and checks if any of them meet the desired conditions. One such algorithm is the Heap's algorithm.


function heapPermutation(str, n) {
if (n === 1) {
console.log(str);
} else {
for (let i = 0; i < n - 1; i++) {
heapPermutation(str, n - 1);
if (n % 2 === 0) {
[str[i], str[n - 1]] = [str[n - 1], str[i]];
} else {
[str[0], str[n - 1]] = [str[n - 1], str[0]];
}
}
heapPermutation(str, n - 1);
}
}

const str = "abc";
heapPermutation(str.split(""), str.length);


In the above code, the heapPermutation() function generates all possible permutations of the given string and outputs them to the console. The function uses recursion and swapping to generate the permutations.

### Method 3: Regular Expressions

A third way to rearrange a string is to use regular expressions. Regular expressions can be used to match and replace specific patterns in a string.


const str = "hello";
const rearrangedStr = str.replace(/(.)(?=.*\1)/g, "");
console.log(rearrangedStr); // Output: helo


In the above code, the regular expression matches any character that appears more than once in the string and removes it using the replace() method.

### Conclusion

These are just a few ways to rearrange strings in JavaScript. Depending on the specific problem or requirements, there may be other methods that are more appropriate. It's important to choose the right method that meets the desired conditions and has optimal performance.