একটি স্ট্রিং দেওয়া থাকলে, এর অক্ষরগুলো রি-অ্যারেঞ্জ করে সর্বাধিক প্যালিনড্রোমিক সাবস্ট্রিং পাওয়া যাবে এমনভাবে সাজাতে হবে। অক্ষর যোগ বা বাদ দেওয়া যাবে না।
উদাহরণ
ইনপুট − str = "itnin"
আউটপুট − Rearrangement ... is: iinnt
ইনপুট − str = "abaaaabb"
আউটপুট − Rearrangement ... is: aaaaabbb
প্রোগ্রামে ব্যবহৃত পদ্ধতি
স্ট্রিং
strও দৈর্ঘ্যlengthনিন।Rearr_string(str, length)ফাংশন কল করুন।ফাংশনে ২৬ আকারের ফ্রিকোয়েন্সি অ্যারে
arr[26]দিয়ে প্রতিটি অক্ষরের ফ্রিকোয়েন্সি গণনা করুন।তারপর 'a' থেকে 'z' পর্যন্ত অক্ষরগুলো ফ্রিকোয়েন্সি অনুযায়ী কনক্যাট করুন।
ফলাফল ফেরত দিন।
উদাহরণ কোড
#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;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Rearrangement of the string to maximize the number of palindromic substrings is: iinnt