কম্পিউটার

C++ এ একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন


ধরুন একটি স্ট্রিং 1(0+)1 এর মত প্যাটার্ন আছে। যেখানে (0+) 1s-এর অ-খালি ধারাবাহিক ঘটনাগুলি নির্দেশ করে৷ আমরা নিদর্শন সব খুঁজে বের করতে হবে. নিদর্শন ওভারল্যাপ করতে পারেন. স্ট্রিংটি অগত্যা একটি বাইনারি স্ট্রিং নয়। এটি শুধুমাত্র সংখ্যা এবং ছোট হাতের অক্ষর ধারণ করতে পারে। ধরুন স্ট্রিংটি 1101001 এর মত, তাহলে এরকম দুটি প্যাটার্ন আছে। 101 এবং 1001।

এই সমস্যা সমাধানের জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • স্ট্রিং এর সমস্ত অক্ষর c দিয়ে পুনরাবৃত্তি করুন

  • যখন c 1 হয়, তখন আমরা উপাদানটি 0 না হওয়া পর্যন্ত পুনরাবৃত্তি করি

  • 0 এর স্ট্রীম শেষ হলে, আমরা পরের অক্ষরটি 1 কিনা তা পরীক্ষা করব

  • স্ট্রিং শেষ না হওয়া পর্যন্ত এই পদক্ষেপগুলি পুনরাবৃত্তি করা হবে৷

উদাহরণ

#include<iostream>
using namespace std;
int countBinPattern(string main_str) {
   char last_char = main_str[0];
   int i = 1, counter = 0;
   while (i < main_str.size()) {
      if (main_str[i] == '0' && last_char == '1') {
         while (main_str[i] == '0')
            i++;
         if (main_str[i] == '1')
            counter++;
      }
      last_char = main_str[i];
         i++;
   }
   return counter;
}
int main() {
   string str = "10010110000101";
   cout << "Number of substrings of pattern 1(0+)1 is: " << countBinPattern(str);
}

আউটপুট

Number of substrings of pattern 1(0+)1 is: 4

  1. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  2. C++ এ প্রদত্ত নিখুঁত বাইনারি গাছের সমস্ত নোডের সমষ্টি খুঁজুন

  3. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন

  4. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ 10+1 এর সমস্ত প্যাটার্ন খুঁজুন