কম্পিউটার

C++-এ একই অক্ষর সমন্বিত K দৈর্ঘ্যের সাবস্ট্রিংগুলির সর্বাধিক গণনা


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

  1. C++ কোড গণনা করার জন্য সর্বাধিক গ্রুপ তৈরি করা যেতে পারে

  2. প্রথম স্তূপে সর্বাধিক খড়-বেল গণনা করতে C++ কোড

  3. C++ পাথের দৈর্ঘ্য সর্বাধিক সংখ্যক বাঁক রয়েছে

  4. C++ এ জোড়ার সর্বোচ্চ দৈর্ঘ্যের চেইন