কম্পিউটার

C++ পূর্ণসংখ্যার সমষ্টি অনুসরণ করে সাজানো ক্রমে একটি স্ট্রিং পুনরায় সাজান


বর্ণমালার একটি স্ট্রিংকে সাজানো ক্রমে পুনর্বিন্যাস করার জন্য একটি সমস্যা নিয়ে আলোচনা করুন এবং স্ট্রিংটিতে উপস্থিত সমস্ত পূর্ণসংখ্যা যোগ করুন, উদাহরণস্বরূপ

Input : str = “adv4fc3”
Output : “ acdfv7”
Explanation: all the letters have been sorted to “acdfv” followed by the sum of integers 4 and 3.

Input: str = “ h2d7e3f ”
Output: “ defh12”
Explanation: all the letters have been sorted to “defh” followed by the sum of integers 2, 7, and 3.

সমাধান খোঁজার পদ্ধতি

এই সমস্যায় আমাদের দুটি কাজ আছে, একটি হল স্ট্রিং বাছাই করা এবং অন্যটি হল পূর্ণসংখ্যার মান যোগ করা৷

  • স্ট্রিং বাছাই করা স্ট্রিংয়ের প্রতিটি অক্ষরের গণনা রেখে এবং তারপর তাদের গণনা অনুসারে সমস্ত অক্ষর সন্নিবেশ করে একটি নতুন স্ট্রিং তৈরি করা যেতে পারে।

  • আমরা প্রতিবার একটি ভেরিয়েবলের সাথে পূর্ণসংখ্যা যোগ করে পূর্ণসংখ্যা যোগ করতে পারি।

উদাহরণ

উপরের পদ্ধতির জন্য C++ কোড

#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
int main(){
    string str = "h2d7e3f";
        int ch[26] = {0};
    int count = 0;
    // traverse through all the characters of string.
    for (int i = 0; i < str.length(); i++){
        // keeping count of occurance every character.
        if (str[i]>='a' && str[i] <='z')
            ch[str[i] - 97] = ch[str[i] - 97] + 1;
        // If an Integer encounters.
        else
            count = count + (str[i]-'0');
    }
    string final = "";
    // Making a sorted string with the help of ch array.
    for (int i = 0; i < 26; i++){
        char a = (char)('a'+i);
        // insert the current character
        // to new string untill it count ends
        while (ch[i]-- != 0)
            final = final + a;
    }
   //  and finally insert sum of all integers in the string.
    if (count>0)
        final = final + to_string(count);
    cout << "Rearranged string: " << final;
    return 0;
}

আউটপুট

Rearranged string: defh12

উপরের কোডের ব্যাখ্যা

  • অ্যারে ch আকার 26 এর আরম্ভ করা হয়েছে কারণ আমাদের 26টি বর্ণমালার উপস্থিতির গণনা রাখতে হবে।

  • প্রথম লুপে, আমরা স্ট্রিং এর মধ্য দিয়ে যাচ্ছি। প্রতিটি বর্ণমালার জন্য, আমরা সেই বর্ণমালার সংখ্যা বৃদ্ধি করছি। প্রতিটি পূর্ণসংখ্যার জন্য, আমরা এটিকে কাউন্ট ভেরিয়েবলে যোগ করছি।

  • দ্বিতীয় লুপে, আমরা সমস্ত গণনা থেকে একটি নতুন সাজানো স্ট্রিং তৈরি করছি যেখানে আমরা তাদের গণনা অনুসারে স্ট্রিংটিতে অক্ষর যুক্ত করছি।

  • এবং আমরা অবশেষে প্রথম লুপ থেকে গণনা করা পূর্ণসংখ্যার যোগফলের সাথে স্ট্রিং যুক্ত করছি।

উপসংহার

এই টিউটোরিয়ালে, আমরা আলোচনা করেছি কিভাবে সাজানো ক্রমে একটি স্ট্রিং সাজানো যায় এবং হ্যাশ টেবিল পদ্ধতির মাধ্যমে এটির উপর ভিত্তি করে একটি সমস্যার সমাধান করেছি। আমরা এই সমস্যার জন্য C++ কোড নিয়েও আলোচনা করেছি। আমরা C, Java, Python, ইত্যাদির মতো অন্য যেকোনো প্রোগ্রামিং ভাষায় লিখতে পারি। আমরা আশা করি আপনার এই টিউটোরিয়ালটি সহায়ক হবে।


  1. C++ অবরোহী ক্রমে স্ট্রিং সাজানো

  2. C++ এ বর্ণানুক্রমিক সাবস্ট্রিংগুলির গণনা খুঁজুন

  3. C++ এ অ্যারেকে সমানভাবে বিভক্ত করতে ন্যূনতম ধনাত্মক পূর্ণসংখ্যার প্রয়োজন

  4. C++ এ অন্য স্ট্রিং দ্বারা সংজ্ঞায়িত বর্ণানুক্রমিক ক্রম অনুসারে স্ট্রিংগুলির অ্যারে সাজান