সমস্যা বিবরণ
০ এবং ১ থেকে বने একটি স্ট্রিং দেওয়া থাকলে, স্ট্রিং-এর শুরু থেকে শেষে যেতে হবে। আপনি বর্তমান ক্যারেক্টার~-এর সমান ক্যারেক্টারএ জাম্প করতে পারেন। সর্বোচ্চ জাম্প দৈর্ঘ্য (power) কত হবে তা বের করুন।
উদাহরণ: "1010101" → শেষ ক্যারেক্টার '১'। '১' গুলোর মধ্যে সর্বোচ্চ গ্যাপ ২ (ইন্ডেক্স ০ থেকে ২, ২ থেকে ৪, ৪ থেকে ৬)। আউটপুট: ২।
সমাধানের পদ্ধতি
- শেষ ক্যারেক্টার
chনিন। - স্ট্রিং ট্রাভার্স করুন, কাউন্ট করুন কতটুকু ধাপে পরের
chপাওয়া যায়। - সর্বোচ্চ কাউন্ট ট্র্যাক করুন।
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)