কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্রিং রি-অ্যারেঞ্জ করে সর্বাধিক প্যালিনড্রোমিক সাবস্ট্রিং বানান


একটি স্ট্রিং দেওয়া থাকলে, এর অক্ষরগুলো রি-অ্যারেঞ্জ করে সর্বাধিক প্যালিনড্রোমিক সাবস্ট্রিং পাওয়া যাবে এমনভাবে সাজাতে হবে। অক্ষর যোগ বা বাদ দেওয়া যাবে না।

উদাহরণ

ইনপুট − 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
  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. C++-এ বিট পুনর্বিন্যাস করে সংখ্যা সর্বাধিক করা

  3. অ্যালফাবেটিক্যাল অর্ডারে সাবস্ট্রিং গণনা করা (C++)

  4. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা