ধরুন আমাদের একটি বাইনারি স্ট্রিং বিন আছে। তারপর এটিতে n পুনরাবৃত্তি প্রয়োগ করুন এবং প্রতিটি পুনরাবৃত্তিতে 0 হয়ে যায় 01 এবং 1 হয়ে যায় 10, তারপর nম পুনরাবৃত্তির পরে স্ট্রিংটিতে ith সূচক অক্ষর। সুতরাং বাইনারি স্ট্রিং যদি 101, এবং n =2, এবং i =3 হয়, তাহলে প্রথম পুনরাবৃত্তির পরে এটি হবে 100110, পরবর্তী পুনরাবৃত্তিতে, এটি 100101101001 হবে, তাই ith সূচকটি 1 ধরে রেখেছে।
এটি সমাধান করার জন্য, আমাদের এই পদক্ষেপগুলি অনুসরণ করতে হবে -
- ন বার লুপ চালান, এবং প্রতিটি পুনরাবৃত্তিতে স্ট্রিং এ আরেকটি লুপ চালান
- বাইনারী স্ট্রিং এর প্রতিটি অক্ষরকে রূপান্তর করুন, এবং যদি এটি 0 হয়, তাহলে 01 সংরক্ষণ করুন বা যদি 1 হয়, তাহলে 10কে অন্য একটি অস্থায়ী স্ট্রিংয়ে সংরক্ষণ করুন
- অভ্যন্তরীণ লুপ সম্পূর্ণ হওয়ার পরে, অস্থায়ী স্ট্রিংকে বাইনারি স্ট্রিংয়ে সংরক্ষণ করুন।
- তারপর ith ইনডেক্স দিন।
উদাহরণ
#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