দেওয়া টাস্ক হল K দৈর্ঘ্যের সাবস্ট্রিংগুলির সর্বাধিক গণনা খুঁজে বের করা একই অক্ষর নিয়ে গঠিত। একটি স্ট্রিং s এবং আরেকটি পূর্ণসংখ্যা K দেওয়া হয়েছে , আমাদের K আকারের সাব-স্ট্রিংগুলির উপস্থিতি গণনা করতে হবে যে একই অক্ষর আছে.
পাওয়া সাব-স্ট্রিংগুলির মধ্যে থেকে, আমাদের সর্বাধিক সংখ্যক সময় ঘটবে এমন সাব-স্ট্রিং বেছে নিতে হবে।
আসুন এখন বুঝতে পারি −
একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবেইনপুট
s = ”tuuxyyuuc”, K = 2
আউটপুট
2
ব্যাখ্যা
এখানে দৈর্ঘ্য 2 এর সাব-স্ট্রিং এবং একই অক্ষর রয়েছে:"uu" এবং "yy" কিন্তু দেখা যায় যে "yy" শুধুমাত্র 1 বার হয় এবং "uu" 2 বার উপস্থিত হয়। তাই আউটপুট 2 হয়ে যায়।
ইনপুট
s = “hhigggff”, K = 3
আউটপুট
1
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
Max() ফাংশনে, চূড়ান্ত উত্তর সংরক্ষণ করার জন্য int ans =0 শুরু করুন, স্ট্রিংয়ের আকার সংরক্ষণ করতে size =str.size() এবং আমাদের চেক করা অক্ষর সংরক্ষণ করতে char c ঘোষণা করুন।
-
j =0 থেকে j <26 পর্যন্ত লুপ করুন এবং c ='a' + j রাখুন কারণ আমরা প্রতিটি অক্ষর পরীক্ষা করব।
-
বর্তমান অক্ষর সমন্বিত সাব-অ্যারের ঘটনা সংরক্ষণের জন্য int CurrCh =0 ভেরিয়েবল শুরু করুন।
-
i =0 থেকে i <=আকার – K পর্যন্ত লুপ করুন এবং পরীক্ষা করুন যদি (str[i] !=c)। যদি তাই হয়, তারপর অবিরত যোগ করুন; বিবৃতি।
-
বর্তমান অক্ষরের সাব-অ্যারের দৈর্ঘ্য সংরক্ষণ করতে গণনা =0 শুরু করুন।
-
কন্ডিশন সহ একটি while লুপ তৈরি করুন (i
count . while লুপের বাইরে i 1 দ্বারা হ্রাস পায়। -
পরীক্ষা করুন যদি (গণনা ==কে)। যদি তাই হয়, তাহলে CurrCh বৃদ্ধি করুন .
-
দ্বিতীয় ফর লুপটি বন্ধ করুন এবং উত্তর এর মান আপডেট করুন ans =max(ans, CurrCh) বসিয়ে।
-
অবশেষে প্রথম ফর লুপটি বন্ধ করুন এবং উত্তর ফেরত দিন .
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int Max(string str, int K){
int ans = 0, size = str.size();
char c;
//Checking for all characters
for (int j = 0; j < 26; j++){
c = 'a' + j;
//checking for current character
int CurrCh = 0;
for (int i = 0; i <= size - K; i++){
if (str[i] != c)
continue;
//Counting the size of sub-string
int count = 0;
while (i < size && count != K && str[i] == c){
i++;
count++;
}
i--;
//Increment CurrCh if sub-string has length K
if (count == K)
CurrCh++;
}
//Update ans
ans = max(ans, CurrCh);
}
return ans;
}
//main function
int main(){
string str = "tuuuxyuuu";
int K = 3;
cout << Max(str, K);
return 0;
} আউটপুট
2