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

n ইটারেশনের পর বাইনারি স্ট্রিং-এ i-তম ইনডেক্সের ক্যারেক্টার খুঁজে বের করা C++-তে


মনে করুন আমাদের একটি বাইনারি স্ট্রিং bin আছে। তারপর এতে n ইটারেশন প্রয়োগ করুন, এবং প্রতিটি ইটারেশনে 0 হয়ে যায় 01 এবং 1 হয়ে যায় 10, এরপর n-তম ইটারেশনের পর স্ট্রিং-এ i-তম ইনডেক্সের ক্যারেক্টার। তাই যদি বাইনারি স্ট্রিং হয় 101, এবং n = 2, এবং i = 3, তবে প্রথম ইটারেশনে এটি হবে 100110, পরবর্তী ইটারেশনে, এটি হবে 100101101001, তাই i-তম ইনডেক্সে 1 আছে।

এটি সমাধানের জন্য, নিচের ধাপগুলো অনুসরণ করতে হবে -

  • n বার লুপ চালান, এবং প্রতিটি ইটারেশনে স্ট্রিং-এ আরেকটি লুপ চালান
    • বাইনারি স্ট্রিং-এর প্রতিটি ক্যারেক্টার কনভার্ট করুন, এবং যদি সেটি 0 হয়, তবে 01 সংরক্ষণ করুন অথবা যদি 1 হয়, তবে 10 সংরক্ষণ করুন অন্য একটি টেম্পোরারি স্ট্রিং-এ
    • ইনার লুপ সমাপ্তির পর, টেম্পোরারি স্ট্রিং-কে বাইনারি স্ট্রিং-এ সংরক্ষণ করুন।
  • তারপর i-তম ইনডেক্স রিটার্ন করুন।

উদাহরণ

#include <iostream>
using namespace std;

char getCharacter(string bin_str, int n, int i) {
    string temp = "";
    for (int x = 0; x < n; x++) {
        for (int y = 0; y < bin_str.length(); y++) {
            if (bin_str[y] == '1')
                temp += "10";
            else
                temp += "01";
        }
        bin_str = temp;
        temp = "";
    }
    return bin_str[i];
}

int main() {
    int n = 2;
    string bin = "101";
    cout << 3 << "rd character is: " << getCharacter(bin, n, 3) << endl;
    cout << 9 << "th character is: " << getCharacter(bin, n, 9);
}

আউটপুট

3rd character is: 1
9th character is: 0

  1. C++-এ Find Leaves of Binary Tree: বাইনারি ট্রি থেকে লีফ নোডগুলো লেভেল অনুযায়ী সংগ্রহ করা

  2. C++ ব্যবহার করে ব্র্যাকেট স্ট্রিংয়ে সমান পয়েন্ট বের করা

  3. C++-এ string at() ফাংশন: নির্দিষ্ট পজিশনের ক্যারেক্টার অ্যাক্সেস

  4. স্ট্রিং-এ ক্যারেক্টার বা অ্যালফাবেটের ফ্রিকোয়েন্সি বের করার C++ প্রোগ্রাম