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

C++-এ বাইনারি স্ট্রিং-এ শেষে পৌঁছানোর জন্য সর্বোচ্চ জাম্প পাওয়ার বের করার প্রোগ্রাম


সমস্যা বিবরণ

০ এবং ১ থেকে বने একটি স্ট্রিং দেওয়া থাকলে, স্ট্রিং-এর শুরু থেকে শেষে যেতে হবে। আপনি বর্তমান ক্যারেক্টার~-এর সমান ক্যারেক্টারএ জাম্প করতে পারেন। সর্বোচ্চ জাম্প দৈর্ঘ্য (power) কত হবে তা বের করুন।

উদাহরণ: "1010101" → শেষ ক্যারেক্টার '১'। '১' গুলোর মধ্যে সর্বোচ্চ গ্যাপ ২ (ইন্ডেক্স ০ থেকে ২, ২ থেকে ৪, ৪ থেকে ৬)। আউটপুট: ২।

সমাধানের পদ্ধতি

  1. শেষ ক্যারেক্টার ch নিন।
  2. স্ট্রিং ট্রাভার্স করুন, কাউন্ট করুন কতটুকু ধাপে পরের ch পাওয়া যায়।
  3. সর্বোচ্চ কাউন্ট ট্র্যাক করুন।

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

#include <bits/stdc++.h>
using namespace std;

int powerOfJump(string s) {
    int count = 1;
    int max_so_far = INT_MIN;
    char ch = s[s.length() - 1];
    for (int i = 0; i < s.length(); i++) {
        if (s[i] == ch) {
            if (count > max_so_far) max_so_far = count;
            count = 1;
        } else {
            count++;
        }
    }
    return max_so_far;
}

int main() {
    string st = "1010101";
    cout << powerOfJump(st);
    return 0;
}

আউটপুট

2

জটিলতা

  • সময়: O(n)
  • স্থান: O(1)
  1. স্ট্রিং-এ প্রথম রিপিটেড ওয়ার্ড বের করা (C++)

  2. স্ট্রিং-এ প্রথম সর্বোচ্চ দৈর্ঘ্যের জোড় আকারের ওয়ার্ড বের করা (C++)

  3. অ্যারেতে প্রিফিক্সের ম্যাক্সিমাম অকারেন্স বের করা C++-এ

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