Rearrange the string to maximize the number of palindromic substrings in C++

We are given with a string ‘str’ of any given length. The task is to rearrange the characters in such a manner that there will be maximum substrings that will be a palindrome string without adding or removing a character from the given input string. Palindrome string is the one in which the characters are arranged in such a manner that they pronounce the same from start and last.
Input − string str = "itnin"
Output − Rearrangement of the string to maximize the number of palindromic substrings is: iinnt.
Explanation − We are given a string type variable let’s say, str. Now we will rearrange the characters of an input string in such a manner that it will be a maximum palindrome string and if it’s not possible then it will return ‘NOT POSSIBLE’. So the output with the given input string is ‘iinnt.’
Input − string str = "abaaaabb"
Output − Rearrangement of the string to maximize the number of palindromic substrings is: aaaaabbb.
Explanation − We are given a string type variable let’s say, str. Now we will rearrange the characters of an input string in such a manner that it will be a maximum palindrome string and if it’s not possible then it will return ‘NOT POSSIBLE’. So the output with the given input string is aaaaabbb’
Input a variable of string type, let’s say, str and calculate the size of a string and store it in a length named variable.
Input a variable of string type, let’s say, str and calculate the size of a string and store it in a length named variable.
Pass the data to the function Rearr_string(str, length).
Pass the data to the function Rearr_string(str, length).
Inside the function Rearr_string(str, length)Declare an array of integer type of size 26 let’s say, arr[26] and initialise it with 0.Declare a temporary variable ‘temp’ of type string.Start loop FOR from i to 0 till i is less than length. Inside the loop, set arr[str[i] - 'a']++.Start loop FOR from i to 0 till i less than 26. Inside the loop, start another loop FOR from j to 0 till j less than arr[i]. Inside the loop, set temp to temp + (char)(97 + i).Return temp.
Inside the function Rearr_string(str, length)
Declare an array of integer type of size 26 let’s say, arr[26] and initialise it with 0.
Declare an array of integer type of size 26 let’s say, arr[26] and initialise it with 0.
Declare a temporary variable ‘temp’ of type string.
Declare a temporary variable ‘temp’ of type string.
Start loop FOR from i to 0 till i is less than length. Inside the loop, set arr[str[i] - 'a']++.
Start loop FOR from i to 0 till i is less than length. Inside the loop, set arr[str[i] - 'a']++.
Start loop FOR from i to 0 till i less than 26. Inside the loop, start another loop FOR from j to 0 till j less than arr[i]. Inside the loop, set temp to temp + (char)(97 + i).
Start loop FOR from i to 0 till i less than 26. Inside the loop, start another loop FOR from j to 0 till j less than arr[i]. Inside the loop, set temp to temp + (char)(97 + i).
Return temp.
Return temp.
Print the result.
Print the result.
#include <bits/stdc++.h>
using namespace std;
string Rearr_string(string str, int length){
   int arr[26] = { 0 };
   string temp = "";
   for(int i = 0; i < length; i++){
      arr[str[i] - 'a']++;
   }
   for(int i = 0; i < 26; i++){
      for(int j = 0; j < arr[i]; j++){
         temp = temp + (char)(97 + i);
      }
   }
   return temp;
}
int main(){
   string str = "itinn";
   int length = str.length();
   cout<<"Rearrangement of the string to maximize the number of palindromic substrings is: "<<Rearr_string(str, length);
   return 0;
}
If we run the above code it will generate the following Output
Rearrangement of the string to maximize the number of palindromic substrings is: iinnt