কম্পিউটার

একটি বাইনারি স্ট্রিং সি++ এ 1s এর মধ্যে 0 আছে কিনা তা পরীক্ষা করুন


এখানে আমরা একটি আকর্ষণীয় সমস্যা দেখতে পাব। আমাদের চেক করতে হবে একটি স্ট্রিং 1s এর মধ্যে 0 আছে কি না। যদি না হয়, তাহলে স্ট্রিংটি বৈধ, অন্যথায় অবৈধ৷ ধরুন তিনটি স্ট্রিং আছে −

  • 10001111010
  • 00001111100
  • 01111101111

এই তিনটি স্ট্রিং থেকে, শুধুমাত্র B বৈধ, কারণ 1s এর স্ট্রিমের ভিতরে কোন 0 নেই

এই সমস্যাটি সমাধান করার জন্য, আমরা স্ট্রিংটিতে উপস্থিত প্রথম 1-এর সূচকটি খুঁজে পাব, এবং শেষ 1-এর সূচকটিও খুঁজে বের করব। তারপর আমরা পরীক্ষা করব, এই দুটি সূচক থেকে কোন 0 আছে কি, যদি তাই হয়, তাহলে মিথ্যা দিন, অন্যথায়। সত্য (বৈধ হিসাবে)

উদাহরণ

#include <iostream>
using namespace std;
bool hasZeroInOnes(string str) {
   int first, last;
   for(first = 0; first < str.length(); first++){
      if(str[first] == '1')
      break;
   }
   for(last = str.length() - 1; last >= 0; last--){
      if(str[last] == '1')
      break;
   }
   for(int i = first+1; i < last; i++){
      if(str[i] == '0')
      return false;
   }
   return true;
}
int main() {
   string str = "00001111100";
   if(hasZeroInOnes(str)){
      cout << str << " is a valid string";
   } else {
      cout << str << " is NOT a valid string";
   }
}

আউটপুট

00001111100 is a valid string

  1. C++ এ একটি বাইনারি ট্রির সম্পূর্ণতা পরীক্ষা করুন

  2. C++ এ একটি স্ট্রিং বাইনারি অনুসন্ধান করুন

  3. একটি বাইনারি গাছ স্তর অনুসারে বাছাই করা হয়েছে কিনা তা পরীক্ষা করুন C++ এ

  4. একটি বাইনারি ট্রি স্তর অনুসারে বাছাই করা হয়েছে কিনা তা পরীক্ষা করুন C++ এ