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

সি++-এ বাইনারি স্ট্রিং উইথ সাবস্ট্রিংস রিপ্রেজেন্টিং ১ টু N (Binary String With Substrings Representing 1 To N)


মান লেযিয়ে একটি বাইনারি স্ট্রিং S এবং একটি ধনাত্মক পূর্ণসংখ্যা N দেওয়া আছে। আমাদের true রিটার্ন করতে হবে যদি এবং কেবল যদি ১ থেকে N পর্যন্ত প্রতিটি পূর্ণসংখ্যা X-এর বাইনারি রিপ্রেজেন্টেশন S-এর সাবস্ট্রিং হিসেবে উপস্থিত থাকে। S = "0110" এবং N = 3 হলে ফলাফল হবে true, কারণ ১, ১০ এবং ১১ সব 0110-এ আছে।

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

  • convert() নামে একটি মেথড সংজ্ঞায়িত করুন, যা n ইনপুট নেবে

  • ret := খালি স্ট্রিং

  • যখন n != ০

    • ret := ret + (n % 2)

    • n := n / 2

  • ret রিভার্স করুন এবং রিটার্ন করুন

  • মেইন মেথড থেকে - i = N থেকে i >= N/2 পর্যন্ত i-- করুন

    • temp := convert(i)

    • যদি temp S-এ না থাকে, false রিটার্ন করুন

  • true রিটার্ন করুন

নিচের বাস্তবায়নটি দেখে আরও ভালো বুঝতে পারবেন -

উদাহরণ

#include <bits/stdc++.h> using namespace std; class Solution {    public:    string convert(int n){       string ret = "";       while(n){          ret += (n % 2) + '0';          n /= 2;       }       reverse(ret.begin(), ret.end());       return ret;    }    bool queryString(string S, int N) {       for(int i = N; i >= N/2; i-- ){          string temp = convert(i);          if(S.find(temp) == string::npos) return false;       }       return true;    } }; main(){    Solution ob;    cout << (ob.queryString("0110", 3)); }

ইনপুট

"0110" 3

আউটপুট

1

  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. স্ট্রিং থেকে বাইনারি ট্রি নির্মাণ C++-এ

  3. সি++-এ দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম

  4. সি++-এ ব্র্যাকেটসহ বাইনারি ট্রি থেকে স্ট্রিং রূপান্তর