Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दी गई लंबाई के सबस्ट्रिंग में अधिकतम वॉवेल्स की संख्या


मान लीजिए हमारे पास एक स्ट्रिंग s और एक इंटीजर k है। हमें s के किसी भी सबस्ट्रिंग में वॉवेल अक्षरों की अधिकतम संख्या ढूंढनी है जिसकी लंबाई k है।

इसलिए, यदि इनपुट है s = "abciiidef", k = 3, तो आउटपुट 3 होगा।

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:

  • cnt := 0

  • एक सेट m परिभाषित करें

  • प्रत्येक वॉवेल v के लिए, करें

    • v को m में डालें

  • ret := 0

  • i := 0 से शुरू करें, जब i < k, i बढ़ाते हुए, करें -

    • cnt := cnt + (1 जब s[i], m में है, अन्यथा 0)

  • ret := max(ret, cnt)

  • n := s का आकार

  • i := k से शुरू करें, जब i < n, i बढ़ाते हुए, करें -

    • यदि s[i - k], m का सदस्य है, तो -

      • (cnt को 1 से घटाएं)

    • cnt := cnt + (1 जब s[i], m में है, अन्यथा 0)

    • 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;    } }; main(){    Solution ob;    cout << (ob.maxVowels("abciiidef",3)); }

इनपुट

"abciiidef",3

आउटपुट

3

  1. C++ में अधिकतम मोड़ों वाला पथ लंबाई C++ में अधिकतम मोड़ों वाला पथ लंबाई

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया गया है। अब हमें अधिकतम संख्या में मोड़ों वाला पथ खोजने की आवश्यकता है। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिएइनपुट -आउटपुट -6अब इस दृष्टिकोण में, हम ट्री को पार करेंगे और पिछली गतिविध

  1. - C++ में दी गई संख्या का बाइनरी प्रतिनिधित्व

    बाइनरी संख्या बाइनरी संख्या केवल 0 और 1 अंकों से बनी होती है। पुनरावर्ती विधि पुनरावृत्ति का उपयोग करके संख्या को बाइनरी में बदलें: 1, तो संख्या/2 के साथ पुनरावर्ती कॉल करें वापस आते समय संख्या % 2 प्रिंट करें उदाहरण कोड 1) toBinary(number / 2); cout << number % 2; } int ma

  1. - C++ में प्रोनिक संख्या (Pronic Number) जांचें

    प्रोनिक संख्या क्या है? एक संख्या जो दो लगातार पूर्णांकों का गुणनफल हो: n = x × (x + 1) पहली प्रोनिक संख्याएं: 0, 2, 6, 12, 20, 30, 42, 56, 72, 90, 110, 132, 156, 182, 210, 240, 272, 306, 342... उदाहरण कोड #include <iostream> #include <cmath> using namespace std; bool isPronicNumber(i