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

C++-এ বাইনারি স্ট্রিং-এ ১ গুলোর মধ্যে ০ আছে কিনা তা যাচাই করা

এখানে আমরা একটি আকর্ষণীয় সমস্যা দেখব। আমাদের যাচাই করতে হবে একটি স্ট্রিং-এ ১ গুলোর মধ্যে ০ আছে কিনা। যদি না থাকে, তবে স্ট্রিংটি বৈধ, অন্যথায় অবৈধ।

মনে করুন তিনটি স্ট্রিং আছে:

  • 10001111010
  • 00001111100
  • 01111101111

এই তিনটি স্ট্রিংয়ের মধ্যে শুধু B বৈধ, কারণ ১ গুলোর ধারার মধ্যে কোনো ০ নেই।

এই সমস্যা সমাধানের জন্য, আমরা স্ট্রিং-এ প্রথম ১ এর ইনডেক্স এবং শেষ ১ এর ইনডেক্স খুঁজে বের করব। তারপর এই দুটি ইনডেক্সের মধ্যে কোনো ০ আছে কিনা তা চেক করব। যদি থাকে, তবে false রিটার্ন করব, অন্যথায় true (বৈধ হিসেবে)।

উদাহরণ (C++ কোড)

#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++-এ একটি বাইনারি ট্রি লেভেল-ওয়াইজ সর্টেড কিনা তা যাচাই করা