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

C++ में सम संख्या में वॉवेल्स वाली सबसे लंबी सबस्ट्रिंग ढूंढना

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

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

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

  • वॉवेल्स को वॉवेल्स एरे में स्टोर करें

  • i को 0 से s के आकार तक रेंज में लूप करें

    • x := s[i], और ok := false

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

    • k को 0 से 4 तक रेंज में: temp := temp + '0' + cnt[vowels[k]] mod 2

    • यदि m में temp है, तो ret := max of ret and i - m[temp], अन्यथा m[temp] := i

  • ret लौटाएं

उदाहरण (C++)

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

#include 
using namespace std;
class Solution {
public:
    int findTheLongestSubstring(string s) {
        int ret = 0;
        map  m;
        map  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. - C++ में स्ट्रिंग से पहली अधिकतम लंबाई वाला सम शब्द ज्ञात करें

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

  1. - C++ का उपयोग करके सम अंकों के योग वाली संख्या खोजना

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

  1. C++ का उपयोग करके Nवां सम-लंबाई पालिंड्रोम ढूंढें C++ का उपयोग करके Nवां सम-लंबाई पालिंड्रोम ढूंढें

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