Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C++ में सम संख्या में स्वरों वाले सबसे लंबे सबस्ट्रिंग का पता लगाएं


मान लीजिए कि हमारे पास स्ट्रिंग s है, हमें सबसे लंबे सबस्ट्रिंग का आकार ज्ञात करना है जिसमें प्रत्येक स्वर सम संख्या में हो। अर्थात्, 'a', 'e', ​​'i', 'o', और 'u' को सम संख्या में बार-बार आना चाहिए। तो अगर स्ट्रिंग "helloworld" की तरह है, तो आउटपुट 8 होगा।

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

  • ret :=0, दो मानचित्र m और cnt परिभाषित करें, m[“00000”] सेट करें:=-1

  • स्वरों को स्वर सरणी में संग्रहित करें

  • मैं के लिए 0 से s के आकार की सीमा में

    • x :=s[i], और ठीक :=false

    • cnt [x] 1 से बढ़ाएँ, अस्थायी सेट करें:=खाली स्ट्रिंग

    • k के लिए 0 से 4 की सीमा में:अस्थायी:=अस्थायी + '0' + cnt [स्वर [k]] मॉड 2

    • यदि m में अस्थायी है, तो ret :=ret का अधिकतम और i – m[temp], अन्यथा m[temp] :=i

  • वापसी रिट

उदाहरण (C++)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int findTheLongestSubstring(string s) {
      int ret = 0;
      map <string, int> m;
      map <char, int> cnt;
      m["00000"] = -1;
      char vowels[5] = {'a', 'e', 'i', 'o', 'u'};
      for(int i = 0; i < s.size(); i++){
         char x = s[i];
         bool ok = false;
         cnt[x]++;
         string temp = "";
         for(int k = 0; k < 5; k++){
            temp+= ('0' + (cnt[vowels[k]] % 2));
         }
         if(m.count(temp)){
            ret = max(ret, i - m[temp]);
         }
         else{
            m[temp] = i;
         }
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.findTheLongestSubstring("helloworld"));
}

इनपुट

“helloworld”

आउटपुट

8

  1. सी ++ में एक स्ट्रिंग से पहली अधिकतम लंबाई भी शब्द खोजें

    इस समस्या में, हम अल्पविराम से अलग किए गए शब्दों से मिलकर एक स्ट्रिंग स्ट्रिंग हैं। हमारा काम है एक स्ट्रिंग से पहली अधिकतम लंबाई, यहां तक ​​कि शब्द, ढूंढना । हमें सबसे बड़ा शब्द दो रिक्त स्थान के बीच की स्ट्रिंग खोजने की जरूरत है जिसकी लंबाई अधिकतम और सम हो। समस्या को समझने के लिए एक उदाहरण लेते

  1. C++ का उपयोग करके अंकों के सम योग के साथ संख्या ज्ञात कीजिए

    एक पूर्णांक संख्या जिसे 2 से पूरी तरह विभाजित किया जा सकता है वह एक सम संख्या होती है। इसलिए इस लेख में हमें संख्या n दी गई है, और हमें अंकों के सम योग के साथ nवीं संख्या ज्ञात करने की आवश्यकता है। सम अंकों वाली पहली पाँच संख्याएँ 2, 4, 6, 8 और 11 हैं। उदाहरण के लिए - Input : n = 5 Output : 11 Expla

  1. C++ का उपयोग करके वां सम लेंथ पैलिंड्रोम ज्ञात कीजिए

    अगर आपने कभी C++ का इस्तेमाल किया है तो आपने Palindrome Numbers के बारे में जरूर सुना होगा। तो इस गाइड में, हम उपयुक्त उदाहरणों का उपयोग करते हुए Nth सम-लेंथ पैलिंड्रोम के बारे में सब कुछ समझाएंगे। पैलिंड्रोम संख्याएँ वे संख्याएँ होती हैं जो उलटने के बाद भी वही रहती हैं। केवल संख्या ही नहीं बल्कि एक