কম্পিউটার টিউটোরিয়াল

C++-এ দিনা দৈর্ঘ্যের সাবস্ট্রিং-এ সর্বোচ্চ ভাওয়েল গণনা


একটি স্ট্রিং s এবং ইন্টিজার k দেওয়া আছে। দৈর্ঘ্য k এর যেকোনো সাবস্ট্রিং-এ সর্বোচ্চ কতটুকু ভাওয়েল (a,e,i,o,u) থাকতে পারে তা বের করতে হবে।

ইনপুট: s = "abciiidef", k = 3 → আউটপুট: 3 (সাবস্ট্রিং "iii")

সমাধানের ধাপগুলো (স্লাইডিং উইন্ডো):

  • ভাওয়েল সেট m বানাব

  • প্রথম k ক্যারেক্টারের ভাওয়েল কাউন্ট cnt

  • ret := max(ret, cnt)

  • উইন্ডো স্লাইড করব: বামে ক্যারেক্টার বাদ দিয়ে ডানে নতুন ক্যারেক্টার যোগ করব

  • প্রতিটা स्टেপে ret আপডেট করব

উদাহরণ

নিচের কোডটি দেখুন −

#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;
    }
};

int main() {
    Solution ob;
    cout << (ob.maxVowels("abciiidef", 3));
}

ইনপুট

"abciiidef",3

আউটপুট

3

  1. C++ দিয়ে সর্বোচ্চ বেণ্ড (Bends) Barney পথের দৈর্ঘ্য বের করা

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

  3. দেওয়া সংখ্যার বাইনারি রিপ্রেজেন্টেশন C++-এ

  4. C++-এ একটি সংখ্যা প্রোনিক (Pronic) কিনা চেক করা