দেওয়া টাস্ক হল 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