কম্পিউটার

C++ এ প্রদত্ত দৈর্ঘ্যের একটি সাবস্ট্রিংয়ে স্বরবর্ণের সর্বোচ্চ সংখ্যা


ধরুন আমাদের একটি স্ট্রিং s এবং একটি পূর্ণসংখ্যা k আছে। k দৈর্ঘ্য সহ s-এর যেকোনো সাবস্ট্রিংয়ে আমাদের সর্বাধিক সংখ্যক স্বরবর্ণ বর্ণ খুঁজে বের করতে হবে।

সুতরাং, ইনপুট যদি s ="abciiidef", k =3 এর মত হয়, তাহলে আউটপুট হবে 3

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • cnt :=0

  • একটি সেট m

    সংজ্ঞায়িত করুন
  • প্রতিটি স্বরধ্বনির জন্য v, do

    • m

      -এ v সন্নিবেশ করান
  • ret :=0

  • আরম্ভ করার জন্য i :=0, যখন i

    • cnt :=cnt + (1 যখন s[i] m হয়, অন্যথায় 0)

  • ret :=সর্বোচ্চ ret এবং cnt

  • n :=s

    এর আকার
  • আরম্ভ করার জন্য i :=k, যখন i

    • যদি s[i - k] m এর সদস্য হয়, তাহলে −

      • (1 দ্বারা cnt হ্রাস)

    • cnt :=cnt + (1 যখন s[i] m হয়, অন্যথায় 0)

    • ret :=সর্বোচ্চ ret এবং cnt

  • রিটার্ন রিটার্ন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int maxVowels(string s, int k) {
      int cnt = 0;
      set<char> m;
      for (auto it : { 'a', 'e', 'i', 'o', 'u' })
      m.insert(it);
      int ret = 0;
      for (int i = 0; i < k; i++) {
         cnt += m.count(s[i]) ? 1 : 0;
      }
      ret = max(ret, cnt);
      int n = s.size();
      for (int i = k; i < n; i++) {
         if (m.count(s[i - k])) {
            cnt--;
         }
         cnt += m.count(s[i]) ? 1 : 0;
         ret = max(ret, cnt);
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.maxVowels("abciiidef",3));
}

ইনপুট

"abciiidef",3

আউটপুট

3

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

  2. C++ এ প্রদত্ত আকারের সাব-অ্যারেতে অনন্য পূর্ণসংখ্যার সর্বাধিক সংখ্যা

  3. C++ এ একটি প্রদত্ত সংখ্যার বাইনারি উপস্থাপনা

  4. একটি প্রদত্ত নম্বর C++ এ Pronic কিনা তা পরীক্ষা করুন